render.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2014 Manu Martinez-Almeida. All rights reserved.
  2. // Use of this source code is governed by a MIT style
  3. // license that can be found in the LICENSE file.
  4. package render
  5. import "net/http"
  6. // Render interface is to be implemented by JSON, XML, HTML, YAML and so on.
  7. type Render interface {
  8. // Render writes data with custom ContentType.
  9. Render(http.ResponseWriter) error
  10. // WriteContentType writes custom ContentType.
  11. WriteContentType(w http.ResponseWriter)
  12. }
  13. var (
  14. _ Render = (*JSON)(nil)
  15. _ Render = (*IndentedJSON)(nil)
  16. _ Render = (*SecureJSON)(nil)
  17. _ Render = (*JsonpJSON)(nil)
  18. _ Render = (*XML)(nil)
  19. _ Render = (*String)(nil)
  20. _ Render = (*Redirect)(nil)
  21. _ Render = (*Data)(nil)
  22. _ Render = (*HTML)(nil)
  23. _ HTMLRender = (*HTMLDebug)(nil)
  24. _ HTMLRender = (*HTMLProduction)(nil)
  25. _ Render = (*YAML)(nil)
  26. _ Render = (*Reader)(nil)
  27. _ Render = (*AsciiJSON)(nil)
  28. _ Render = (*ProtoBuf)(nil)
  29. _ Render = (*TOML)(nil)
  30. )
  31. func writeContentType(w http.ResponseWriter, value []string) {
  32. header := w.Header()
  33. if val := header["Content-Type"]; len(val) == 0 {
  34. header["Content-Type"] = value
  35. }
  36. }