registry: fix binary JSON content-type
This fixes registry endpoints to return the proper `application/json` content-type for JSON content, also updating spec examples for that. As per IETF specification and IANA registry [0], the `application/json` type is a binary media, so the content-type label does not need any text-charset selector. Additionally, the media type definition explicitly states that it has no required nor optional parameters, which makes the current registry headers non-compliant. [0]: https://www.iana.org/assignments/media-types/application/json Signed-off-by: Luca Bruno <lucab@debian.org>master
							parent
							
								
									91b0f0559e
								
							
						
					
					
						commit
						15b0204758
					
				|  | @ -133,7 +133,7 @@ to the 1.0 registry. Requests from newer clients will route to the 2.0 registry. | ||||||
| 			> Accept: */* | 			> Accept: */* | ||||||
| 			>  | 			>  | ||||||
| 			< HTTP/1.1 200 OK | 			< HTTP/1.1 200 OK | ||||||
| 			< Content-Type: application/json; charset=utf-8 | 			< Content-Type: application/json | ||||||
| 			< Docker-Distribution-Api-Version: registry/2.0 | 			< Docker-Distribution-Api-Version: registry/2.0 | ||||||
| 			< Date: Tue, 14 Apr 2015 22:34:13 GMT | 			< Date: Tue, 14 Apr 2015 22:34:13 GMT | ||||||
| 			< Content-Length: 39 | 			< Content-Length: 39 | ||||||
|  |  | ||||||
							
								
								
									
										182
									
								
								docs/spec/api.md
								
								
								
								
							
							
						
						
									
										182
									
								
								docs/spec/api.md
								
								
								
								
							|  | @ -1206,7 +1206,7 @@ The registry does not implement the V2 API. | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1244,7 +1244,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1316,7 +1316,7 @@ The following parameters should be specified on the request: | ||||||
| ``` | ``` | ||||||
| 200 OK | 200 OK | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|     "name": <name>, |     "name": <name>, | ||||||
|  | @ -1344,7 +1344,7 @@ The following headers will be returned with the response: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1382,7 +1382,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1419,7 +1419,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1456,7 +1456,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1514,7 +1514,7 @@ The following parameters should be specified on the request: | ||||||
| 200 OK | 200 OK | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Link: <<url>?n=<last n value>&last=<last entry from response>>; rel="next" | Link: <<url>?n=<last n value>&last=<last entry from response>>; rel="next" | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|     "name": <name>, |     "name": <name>, | ||||||
|  | @ -1543,7 +1543,7 @@ The following headers will be returned with the response: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1581,7 +1581,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1618,7 +1618,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1655,7 +1655,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1759,7 +1759,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1792,7 +1792,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1830,7 +1830,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1867,7 +1867,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -1904,7 +1904,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2005,7 +2005,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2041,7 +2041,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2079,7 +2079,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2116,7 +2116,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2153,7 +2153,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2189,7 +2189,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|     "errors:" [{ |     "errors:" [{ | ||||||
|  | @ -2277,7 +2277,7 @@ The following parameters should be specified on the request: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2310,7 +2310,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2348,7 +2348,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2385,7 +2385,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2422,7 +2422,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2458,7 +2458,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2583,7 +2583,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2614,7 +2614,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2647,7 +2647,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2685,7 +2685,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2722,7 +2722,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2759,7 +2759,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2843,7 +2843,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2874,7 +2874,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2917,7 +2917,7 @@ The range specification cannot be satisfied for the requested content. This can | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2955,7 +2955,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -2992,7 +2992,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3029,7 +3029,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3132,7 +3132,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3163,7 +3163,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 405 Method Not Allowed | 405 Method Not Allowed | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3195,7 +3195,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3233,7 +3233,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3270,7 +3270,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3307,7 +3307,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3445,7 +3445,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3483,7 +3483,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3520,7 +3520,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3557,7 +3557,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3662,7 +3662,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3700,7 +3700,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3737,7 +3737,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3774,7 +3774,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3897,7 +3897,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3935,7 +3935,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -3972,7 +3972,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4009,7 +4009,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4102,7 +4102,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4134,7 +4134,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4166,7 +4166,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4204,7 +4204,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4241,7 +4241,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4278,7 +4278,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4370,7 +4370,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4402,7 +4402,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4434,7 +4434,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4472,7 +4472,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4509,7 +4509,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4546,7 +4546,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4636,7 +4636,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4668,7 +4668,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4710,7 +4710,7 @@ The `Content-Range` specification cannot be accepted, either because it does not | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4748,7 +4748,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4785,7 +4785,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4822,7 +4822,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4916,7 +4916,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4949,7 +4949,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -4981,7 +4981,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5019,7 +5019,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5056,7 +5056,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5093,7 +5093,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5177,7 +5177,7 @@ The following headers will be returned with the response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 400 Bad Request | 400 Bad Request | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5208,7 +5208,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5240,7 +5240,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| 401 Unauthorized | 401 Unauthorized | ||||||
| WWW-Authenticate: <scheme> realm="<realm>", ..." | WWW-Authenticate: <scheme> realm="<realm>", ..." | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5278,7 +5278,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 404 Not Found | 404 Not Found | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5315,7 +5315,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 403 Forbidden | 403 Forbidden | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5352,7 +5352,7 @@ The error codes that may be included in the response body are enumerated below: | ||||||
| ``` | ``` | ||||||
| 429 Too Many Requests | 429 Too Many Requests | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"errors:" [ | 	"errors:" [ | ||||||
|  | @ -5414,7 +5414,7 @@ Request an unabridged list of repositories available.  The implementation may im | ||||||
| ``` | ``` | ||||||
| 200 OK | 200 OK | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"repositories": [ | 	"repositories": [ | ||||||
|  | @ -5459,7 +5459,7 @@ The following parameters should be specified on the request: | ||||||
| 200 OK | 200 OK | ||||||
| Content-Length: <length> | Content-Length: <length> | ||||||
| Link: <<url>?n=<last n value>&last=<last entry from response>>; rel="next" | Link: <<url>?n=<last n value>&last=<last entry from response>>; rel="next" | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
| 	"repositories": [ | 	"repositories": [ | ||||||
|  |  | ||||||
|  | @ -60,7 +60,7 @@ return this response: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| HTTP/1.1 401 Unauthorized | HTTP/1.1 401 Unauthorized | ||||||
| Content-Type: application/json; charset=utf-8 | Content-Type: application/json | ||||||
| Docker-Distribution-Api-Version: registry/2.0 | Docker-Distribution-Api-Version: registry/2.0 | ||||||
| Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:samalba/my-app:pull,push" | Www-Authenticate: Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:samalba/my-app:pull,push" | ||||||
| Date: Thu, 10 Sep 2015 19:32:31 GMT | Date: Thu, 10 Sep 2015 19:32:31 GMT | ||||||
|  |  | ||||||
|  | @ -291,7 +291,7 @@ func statusResponse(w http.ResponseWriter, r *http.Request, status int, checks m | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	w.Header().Set("Content-Type", "application/json; charset=utf-8") | 	w.Header().Set("Content-Type", "application/json") | ||||||
| 	w.Header().Set("Content-Length", fmt.Sprint(len(p))) | 	w.Header().Set("Content-Length", fmt.Sprint(len(p))) | ||||||
| 	w.WriteHeader(status) | 	w.WriteHeader(status) | ||||||
| 	if _, err := w.Write(p); err != nil { | 	if _, err := w.Write(p); err != nil { | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ import ( | ||||||
| // and sets the content-type header to 'application/json'. It will handle
 | // and sets the content-type header to 'application/json'. It will handle
 | ||||||
| // ErrorCoder and Errors, and if necessary will create an envelope.
 | // ErrorCoder and Errors, and if necessary will create an envelope.
 | ||||||
| func ServeJSON(w http.ResponseWriter, err error) error { | func ServeJSON(w http.ResponseWriter, err error) error { | ||||||
| 	w.Header().Set("Content-Type", "application/json; charset=utf-8") | 	w.Header().Set("Content-Type", "application/json") | ||||||
| 	var sc int | 	var sc int | ||||||
| 
 | 
 | ||||||
| 	switch errs := err.(type) { | 	switch errs := err.(type) { | ||||||
|  |  | ||||||
|  | @ -126,7 +126,7 @@ var ( | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		Body: BodyDescriptor{ | 		Body: BodyDescriptor{ | ||||||
| 			ContentType: "application/json; charset=utf-8", | 			ContentType: "application/json", | ||||||
| 			Format:      errorsBody, | 			Format:      errorsBody, | ||||||
| 		}, | 		}, | ||||||
| 		ErrorCodes: []errcode.ErrorCode{ | 		ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -147,7 +147,7 @@ var ( | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		Body: BodyDescriptor{ | 		Body: BodyDescriptor{ | ||||||
| 			ContentType: "application/json; charset=utf-8", | 			ContentType: "application/json", | ||||||
| 			Format:      errorsBody, | 			Format:      errorsBody, | ||||||
| 		}, | 		}, | ||||||
| 		ErrorCodes: []errcode.ErrorCode{ | 		ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -168,7 +168,7 @@ var ( | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		Body: BodyDescriptor{ | 		Body: BodyDescriptor{ | ||||||
| 			ContentType: "application/json; charset=utf-8", | 			ContentType: "application/json", | ||||||
| 			Format:      errorsBody, | 			Format:      errorsBody, | ||||||
| 		}, | 		}, | ||||||
| 		ErrorCodes: []errcode.ErrorCode{ | 		ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -189,7 +189,7 @@ var ( | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		Body: BodyDescriptor{ | 		Body: BodyDescriptor{ | ||||||
| 			ContentType: "application/json; charset=utf-8", | 			ContentType: "application/json", | ||||||
| 			Format:      errorsBody, | 			Format:      errorsBody, | ||||||
| 		}, | 		}, | ||||||
| 		ErrorCodes: []errcode.ErrorCode{ | 		ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -441,7 +441,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									}, | 									}, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format: `{ | 									Format: `{ | ||||||
|     "name": <name>, |     "name": <name>, | ||||||
|     "tags": [ |     "tags": [ | ||||||
|  | @ -478,7 +478,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									linkHeader, | 									linkHeader, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format: `{ | 									Format: `{ | ||||||
|     "name": <name>, |     "name": <name>, | ||||||
|     "tags": [ |     "tags": [ | ||||||
|  | @ -541,7 +541,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeTagInvalid, | 									ErrorCodeTagInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -592,7 +592,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 								Description: "The received manifest was invalid in some way, as described by the error codes. The client should resolve the issue and retry the request.", | 								Description: "The received manifest was invalid in some way, as described by the error codes. The client should resolve the issue and retry the request.", | ||||||
| 								StatusCode:  http.StatusBadRequest, | 								StatusCode:  http.StatusBadRequest, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 								ErrorCodes: []errcode.ErrorCode{ | 								ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -615,7 +615,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUnknown, | 									ErrorCodeBlobUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format: `{ | 									Format: `{ | ||||||
|     "errors:" [{ |     "errors:" [{ | ||||||
|             "code": "BLOB_UNKNOWN", |             "code": "BLOB_UNKNOWN", | ||||||
|  | @ -669,7 +669,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeTagInvalid, | 									ErrorCodeTagInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -686,7 +686,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeManifestUnknown, | 									ErrorCodeManifestUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -766,7 +766,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeDigestInvalid, | 									ErrorCodeDigestInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -774,7 +774,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 								Description: "The blob, identified by `name` and `digest`, is unknown to the registry.", | 								Description: "The blob, identified by `name` and `digest`, is unknown to the registry.", | ||||||
| 								StatusCode:  http.StatusNotFound, | 								StatusCode:  http.StatusNotFound, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 								ErrorCodes: []errcode.ErrorCode{ | 								ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -838,7 +838,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeDigestInvalid, | 									ErrorCodeDigestInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -849,7 +849,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUnknown, | 									ErrorCodeBlobUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -905,7 +905,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 								Description: "The blob, identified by `name` and `digest`, is unknown to the registry.", | 								Description: "The blob, identified by `name` and `digest`, is unknown to the registry.", | ||||||
| 								StatusCode:  http.StatusNotFound, | 								StatusCode:  http.StatusNotFound, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 								ErrorCodes: []errcode.ErrorCode{ | 								ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -917,7 +917,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 								Description: "Blob delete is not allowed because the registry is configured as a pull-through cache or `delete` has been disabled", | 								Description: "Blob delete is not allowed because the registry is configured as a pull-through cache or `delete` has been disabled", | ||||||
| 								StatusCode:  http.StatusMethodNotAllowed, | 								StatusCode:  http.StatusMethodNotAllowed, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 								ErrorCodes: []errcode.ErrorCode{ | 								ErrorCodes: []errcode.ErrorCode{ | ||||||
|  | @ -1179,7 +1179,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadInvalid, | 									ErrorCodeBlobUploadInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1190,7 +1190,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadUnknown, | 									ErrorCodeBlobUploadUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1254,7 +1254,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadInvalid, | 									ErrorCodeBlobUploadInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1265,7 +1265,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadUnknown, | 									ErrorCodeBlobUploadUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1336,7 +1336,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadInvalid, | 									ErrorCodeBlobUploadInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1347,7 +1347,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadUnknown, | 									ErrorCodeBlobUploadUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1431,7 +1431,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									errcode.ErrorCodeUnsupported, | 									errcode.ErrorCodeUnsupported, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1442,7 +1442,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadUnknown, | 									ErrorCodeBlobUploadUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1488,7 +1488,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadInvalid, | 									ErrorCodeBlobUploadInvalid, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1499,7 +1499,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									ErrorCodeBlobUploadUnknown, | 									ErrorCodeBlobUploadUnknown, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format:      errorsBody, | 									Format:      errorsBody, | ||||||
| 								}, | 								}, | ||||||
| 							}, | 							}, | ||||||
|  | @ -1539,7 +1539,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 									}, | 									}, | ||||||
| 								}, | 								}, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format: `{ | 									Format: `{ | ||||||
| 	"repositories": [ | 	"repositories": [ | ||||||
| 		<name>, | 		<name>, | ||||||
|  | @ -1558,7 +1558,7 @@ var routeDescriptors = []RouteDescriptor{ | ||||||
| 							{ | 							{ | ||||||
| 								StatusCode: http.StatusOK, | 								StatusCode: http.StatusOK, | ||||||
| 								Body: BodyDescriptor{ | 								Body: BodyDescriptor{ | ||||||
| 									ContentType: "application/json; charset=utf-8", | 									ContentType: "application/json", | ||||||
| 									Format: `{ | 									Format: `{ | ||||||
| 	"repositories": [ | 	"repositories": [ | ||||||
| 		<name>, | 		<name>, | ||||||
|  |  | ||||||
|  | @ -80,7 +80,7 @@ func addTestFetch(repo string, dgst digest.Digest, content []byte, m *testutil.R | ||||||
| func addTestCatalog(route string, content []byte, link string, m *testutil.RequestResponseMap) { | func addTestCatalog(route string, content []byte, link string, m *testutil.RequestResponseMap) { | ||||||
| 	headers := map[string][]string{ | 	headers := map[string][]string{ | ||||||
| 		"Content-Length": {strconv.Itoa(len(content))}, | 		"Content-Length": {strconv.Itoa(len(content))}, | ||||||
| 		"Content-Type":   {"application/json; charset=utf-8"}, | 		"Content-Type":   {"application/json"}, | ||||||
| 	} | 	} | ||||||
| 	if link != "" { | 	if link != "" { | ||||||
| 		headers["Link"] = append(headers["Link"], link) | 		headers["Link"] = append(headers["Link"], link) | ||||||
|  | @ -1062,7 +1062,7 @@ func TestObtainsErrorForMissingTag(t *testing.T) { | ||||||
| 			StatusCode: http.StatusNotFound, | 			StatusCode: http.StatusNotFound, | ||||||
| 			Body:       errBytes, | 			Body:       errBytes, | ||||||
| 			Headers: http.Header(map[string][]string{ | 			Headers: http.Header(map[string][]string{ | ||||||
| 				"Content-Type": {"application/json; charset=utf-8"}, | 				"Content-Type": {"application/json"}, | ||||||
| 			}), | 			}), | ||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
|  | @ -65,7 +65,7 @@ func TestCheckAPI(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	checkResponse(t, "issuing api base check", resp, http.StatusOK) | 	checkResponse(t, "issuing api base check", resp, http.StatusOK) | ||||||
| 	checkHeaders(t, resp, http.Header{ | 	checkHeaders(t, resp, http.Header{ | ||||||
| 		"Content-Type":   []string{"application/json; charset=utf-8"}, | 		"Content-Type":   []string{"application/json"}, | ||||||
| 		"Content-Length": []string{"2"}, | 		"Content-Length": []string{"2"}, | ||||||
| 	}) | 	}) | ||||||
| 
 | 
 | ||||||
|  | @ -259,7 +259,7 @@ func TestURLPrefix(t *testing.T) { | ||||||
| 
 | 
 | ||||||
| 	checkResponse(t, "issuing api base check", resp, http.StatusOK) | 	checkResponse(t, "issuing api base check", resp, http.StatusOK) | ||||||
| 	checkHeaders(t, resp, http.Header{ | 	checkHeaders(t, resp, http.Header{ | ||||||
| 		"Content-Type":   []string{"application/json; charset=utf-8"}, | 		"Content-Type":   []string{"application/json"}, | ||||||
| 		"Content-Length": []string{"2"}, | 		"Content-Length": []string{"2"}, | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|  | @ -1180,7 +1180,7 @@ func testManifestAPISchema1(t *testing.T, env *testEnv, imageName reference.Name | ||||||
| 	// charset.
 | 	// charset.
 | ||||||
| 	resp = putManifest(t, "re-putting signed manifest", manifestDigestURL, schema1.MediaTypeSignedManifest, sm2) | 	resp = putManifest(t, "re-putting signed manifest", manifestDigestURL, schema1.MediaTypeSignedManifest, sm2) | ||||||
| 	checkResponse(t, "re-putting signed manifest", resp, http.StatusCreated) | 	checkResponse(t, "re-putting signed manifest", resp, http.StatusCreated) | ||||||
| 	resp = putManifest(t, "re-putting signed manifest", manifestDigestURL, "application/json; charset=utf-8", sm2) | 	resp = putManifest(t, "re-putting signed manifest", manifestDigestURL, "application/json", sm2) | ||||||
| 	checkResponse(t, "re-putting signed manifest", resp, http.StatusCreated) | 	checkResponse(t, "re-putting signed manifest", resp, http.StatusCreated) | ||||||
| 	resp = putManifest(t, "re-putting signed manifest", manifestDigestURL, "application/json", sm2) | 	resp = putManifest(t, "re-putting signed manifest", manifestDigestURL, "application/json", sm2) | ||||||
| 	checkResponse(t, "re-putting signed manifest", resp, http.StatusCreated) | 	checkResponse(t, "re-putting signed manifest", resp, http.StatusCreated) | ||||||
|  | @ -2329,7 +2329,7 @@ func checkBodyHasErrorCodes(t *testing.T, msg string, resp *http.Response, error | ||||||
| 
 | 
 | ||||||
| 	// TODO(stevvooe): Shoot. The error setup is not working out. The content-
 | 	// TODO(stevvooe): Shoot. The error setup is not working out. The content-
 | ||||||
| 	// type headers are being set after writing the status code.
 | 	// type headers are being set after writing the status code.
 | ||||||
| 	// if resp.Header.Get("Content-Type") != "application/json; charset=utf-8" {
 | 	// if resp.Header.Get("Content-Type") != "application/json" {
 | ||||||
| 	// 	t.Fatalf("unexpected content type: %v != 'application/json'",
 | 	// 	t.Fatalf("unexpected content type: %v != 'application/json'",
 | ||||||
| 	// 		resp.Header.Get("Content-Type"))
 | 	// 		resp.Header.Get("Content-Type"))
 | ||||||
| 	// }
 | 	// }
 | ||||||
|  |  | ||||||
|  | @ -898,7 +898,7 @@ func (app *App) nameRequired(r *http.Request) bool { | ||||||
| func apiBase(w http.ResponseWriter, r *http.Request) { | func apiBase(w http.ResponseWriter, r *http.Request) { | ||||||
| 	const emptyJSON = "{}" | 	const emptyJSON = "{}" | ||||||
| 	// Provide a simple /v2/ 200 OK response with empty json response.
 | 	// Provide a simple /v2/ 200 OK response with empty json response.
 | ||||||
| 	w.Header().Set("Content-Type", "application/json; charset=utf-8") | 	w.Header().Set("Content-Type", "application/json") | ||||||
| 	w.Header().Set("Content-Length", fmt.Sprint(len(emptyJSON))) | 	w.Header().Set("Content-Length", fmt.Sprint(len(emptyJSON))) | ||||||
| 
 | 
 | ||||||
| 	fmt.Fprint(w, emptyJSON) | 	fmt.Fprint(w, emptyJSON) | ||||||
|  |  | ||||||
|  | @ -188,8 +188,8 @@ func TestNewApp(t *testing.T) { | ||||||
| 		t.Fatalf("unexpected status code during request: %v", err) | 		t.Fatalf("unexpected status code during request: %v", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if req.Header.Get("Content-Type") != "application/json; charset=utf-8" { | 	if req.Header.Get("Content-Type") != "application/json" { | ||||||
| 		t.Fatalf("unexpected content-type: %v != %v", req.Header.Get("Content-Type"), "application/json; charset=utf-8") | 		t.Fatalf("unexpected content-type: %v != %v", req.Header.Get("Content-Type"), "application/json") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	expectedAuthHeader := "Bearer realm=\"realm-test\",service=\"service-test\"" | 	expectedAuthHeader := "Bearer realm=\"realm-test\",service=\"service-test\"" | ||||||
|  |  | ||||||
|  | @ -55,7 +55,7 @@ func (ch *catalogHandler) GetCatalog(w http.ResponseWriter, r *http.Request) { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	w.Header().Set("Content-Type", "application/json; charset=utf-8") | 	w.Header().Set("Content-Type", "application/json") | ||||||
| 
 | 
 | ||||||
| 	// Add a link header if there are more entries to retrieve
 | 	// Add a link header if there are more entries to retrieve
 | ||||||
| 	if moreEntries { | 	if moreEntries { | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ func (th *tagsHandler) GetTags(w http.ResponseWriter, r *http.Request) { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	w.Header().Set("Content-Type", "application/json; charset=utf-8") | 	w.Header().Set("Content-Type", "application/json") | ||||||
| 
 | 
 | ||||||
| 	enc := json.NewEncoder(w) | 	enc := json.NewEncoder(w) | ||||||
| 	if err := enc.Encode(tagsAPIResponse{ | 	if err := enc.Encode(tagsAPIResponse{ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue