diff options
author | Jochen Topf <jochen@topf.org> | 2011-03-08 12:28:44 +0100 |
---|---|---|
committer | Jochen Topf <jochen@topf.org> | 2011-03-08 12:28:44 +0100 |
commit | edf776d618335d11652f49bd142ab59926ac6bbb (patch) | |
tree | b6a976289a67efffa3e1d6f18fc00b1c54c99850 /web | |
parent | c03cd991a9c54595dedd925fba1294df4fb46348 (diff) | |
download | taginfo-edf776d618335d11652f49bd142ab59926ac6bbb.tar taginfo-edf776d618335d11652f49bd142ab59926ac6bbb.tar.gz |
more API docs
Diffstat (limited to 'web')
-rw-r--r-- | web/lib/api/db.rb | 18 | ||||
-rw-r--r-- | web/lib/api/josm.rb | 8 | ||||
-rw-r--r-- | web/lib/api/search.rb | 24 | ||||
-rw-r--r-- | web/lib/api/wiki.rb | 4 |
4 files changed, 32 insertions, 22 deletions
diff --git a/web/lib/api/db.rb b/web/lib/api/db.rb index 26478b1..104b4dc 100644 --- a/web/lib/api/db.rb +++ b/web/lib/api/db.rb @@ -30,7 +30,8 @@ class Taginfo < Sinatra::Base :in_josm => :BOOL, :in_potlatch => :BOOL }, - :example => { :page => 1, :rp => 10, :filter => 'in_wiki', :sortname => 'key', :sortorder => 'asc' } + :example => { :page => 1, :rp => 10, :filter => 'in_wiki', :sortname => 'key', :sortorder => 'asc' }, + :ui => '/keys' }) do if params[:filters] @@ -163,7 +164,8 @@ class Taginfo < Sinatra::Base }, :users => :INT }, - :example => { :key => 'highway' } + :example => { :key => 'highway' }, + :ui => '/keys/highway' }) do key = params[:key] out = Hash.new @@ -194,7 +196,8 @@ class Taginfo < Sinatra::Base :description => 'Get map with distribution of this key in the database.', :parameters => { :key => 'Tag key (required).' }, :result => 'PNG image.', - :example => { :key => 'amenity' } + :example => { :key => 'amenity' }, + :ui => '/keys/highway#map' }) do key = params[:key] content_type :png @@ -218,7 +221,8 @@ class Taginfo < Sinatra::Base }, :sort => %w( value count_all count_nodes count_ways count_relations ), :result => { :value => :STRING, :count => :INT, :fraction => :FLOAT }, - :example => { :key => 'highway', :page => 1, :rp => 10, :sortname => 'count_ways', :sortorder => 'desc' } + :example => { :key => 'highway', :page => 1, :rp => 10, :sortname => 'count_ways', :sortorder => 'desc' }, + :ui => '/keys/highway#values' }) do key = params[:key] filter_type = get_filter() @@ -282,7 +286,8 @@ class Taginfo < Sinatra::Base :to_fraction => :FLOAT, :from_fraction => :FLOAT }, - :example => { :key => 'highway', :page => 1, :rp => 10, :sortname => 'together_count', :sortorder => 'desc' } + :example => { :key => 'highway', :page => 1, :rp => 10, :sortname => 'together_count', :sortorder => 'desc' }, + :ui => '/keys/highway#keys' }) do key = params[:key] filter_type = get_filter() @@ -385,7 +390,8 @@ class Taginfo < Sinatra::Base :count_fraction => :FLOAT, } }, - :example => { :key => 'highway', :value => 'residential' } + :example => { :key => 'highway', :value => 'residential' }, + :ui => '/tags/highway=residential' }) do key = params[:key] value = params[:value] diff --git a/web/lib/api/josm.rb b/web/lib/api/josm.rb index cdb4e0b..ffd7e1d 100644 --- a/web/lib/api/josm.rb +++ b/web/lib/api/josm.rb @@ -1,7 +1,7 @@ # web/lib/api/josm.rb class Taginfo < Sinatra::Base - get '/api/2/josm/styles' do + api(2, 'josm/styles') do # XXX dummy function return [ { :id => 'standard', :name => 'standard', :url => '' } @@ -22,7 +22,7 @@ class Taginfo < Sinatra::Base }.to_json end - get '/api/2/josm/styles/:style' do + api(2, 'josm/styles/:style') do total = @db.count('josm_style_rules'). condition_if("k LIKE '%' || ? || '%' OR v LIKE '%' || ? || '%'", params[:query], params[:query]). get_first_value().to_i @@ -44,7 +44,7 @@ class Taginfo < Sinatra::Base return get_josm_result(total, res); end - get '/api/2/josm/styles/:style/keys' do + api(2, 'josm/styles/:style/keys') do style = params[:style] # XXX do something with this key = params[:key] @@ -67,7 +67,7 @@ class Taginfo < Sinatra::Base return get_josm_result(total, res); end - get '/api/2/josm/styles/:style/tags' do + api(2, 'josm/styles/:style/tags') do key = params[:key] value = params[:value] diff --git a/web/lib/api/search.rb b/web/lib/api/search.rb index 9732e7e..2f0ef75 100644 --- a/web/lib/api/search.rb +++ b/web/lib/api/search.rb @@ -1,11 +1,19 @@ # web/lib/api/search.rb class Taginfo < Sinatra::Base - get '/api/2/search/keys' do - query = params[:q] - end - - get '/api/2/search/values' do + api(2, 'search/values', { + :description => 'Search all tag values for string.', + :parameters => { :q => 'Value to search for (substring search, required).' }, + :sort => %w( count_all key value ), + :paging => :optional, + :result => { + :key => :STRING, + :value => :STRING, + :count_all => :INT + }, + :example => { :q => 'foo', :page => 1, :rp => 10 }, + :ui => '/search?q=foo#values' + }) do query = params[:q] total = @db.count('search.ftsearch'). @@ -34,7 +42,7 @@ class Taginfo < Sinatra::Base }.to_json end - get '/api/2/search/tags' do + api(2, 'search/tags') do query = params[:q] (query_key, query_value) = query.split('=', 2) @@ -70,8 +78,4 @@ class Taginfo < Sinatra::Base }.to_json end - get '/api/2/search/wiki' do - query = params[:q] - end - end diff --git a/web/lib/api/wiki.rb b/web/lib/api/wiki.rb index 6b6a46d..d215937 100644 --- a/web/lib/api/wiki.rb +++ b/web/lib/api/wiki.rb @@ -20,7 +20,7 @@ class Taginfo < Sinatra::Base }.to_json end - get '/api/2/wiki/keys' do + api(2, 'wiki/keys') do key = params[:key] if key.nil? @@ -60,7 +60,7 @@ class Taginfo < Sinatra::Base end end - get '/api/2/wiki/tags' do + api(2, 'wiki/tags') do key = params[:key] value = params[:value] |