figure out the api version from HTTP_ACCEPT
This commit is contained in:
parent
8845263244
commit
dfc6a1273e
|
@ -9,7 +9,7 @@ class Travis::Api::App
|
||||||
set(:prefix) { "/" << name[/[^:]+$/].underscore }
|
set(:prefix) { "/" << name[/[^:]+$/].underscore }
|
||||||
set disable_root_endpoint: false
|
set disable_root_endpoint: false
|
||||||
register :scoping
|
register :scoping
|
||||||
helpers :current_user # :services
|
helpers :current_user
|
||||||
|
|
||||||
before { content_type :json }
|
before { content_type :json }
|
||||||
error(ActiveRecord::RecordNotFound, Sinatra::NotFound) { not_found }
|
error(ActiveRecord::RecordNotFound, Sinatra::NotFound) { not_found }
|
||||||
|
|
|
@ -6,6 +6,9 @@ class Travis::Api::App
|
||||||
# convert (in addition to the return values supported by Sinatra, of
|
# convert (in addition to the return values supported by Sinatra, of
|
||||||
# course). These values will be encoded in JSON.
|
# course). These values will be encoded in JSON.
|
||||||
module JsonRenderer
|
module JsonRenderer
|
||||||
|
ACCEPT_VERSION = /vnd\.travis-ci\.(\d+)\+/
|
||||||
|
DEFAULT_VERSION = 'v1'
|
||||||
|
|
||||||
def respond_with(resource, options = {})
|
def respond_with(resource, options = {})
|
||||||
halt render_json(resource, options)
|
halt render_json(resource, options)
|
||||||
end
|
end
|
||||||
|
@ -18,7 +21,7 @@ class Travis::Api::App
|
||||||
private
|
private
|
||||||
|
|
||||||
def render_json(resource, options = {})
|
def render_json(resource, options = {})
|
||||||
options[:version] ||= 'v2' # TODO: Content negotiation
|
options[:version] ||= api_version
|
||||||
options[:params] ||= params
|
options[:params] ||= params
|
||||||
|
|
||||||
builder = Travis::Api.builder(resource, options)
|
builder = Travis::Api.builder(resource, options)
|
||||||
|
@ -27,6 +30,11 @@ class Travis::Api::App
|
||||||
|
|
||||||
resource
|
resource
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def api_version
|
||||||
|
accept = request.env['HTTP_ACCEPT'] || ''
|
||||||
|
accept =~ ACCEPT_VERSION && "v#{$1}" || DEFAULT_VERSION
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user