summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJochen Topf <jochen@topf.org>2011-03-08 12:28:44 +0100
committerJochen Topf <jochen@topf.org>2011-03-08 12:28:44 +0100
commitedf776d618335d11652f49bd142ab59926ac6bbb (patch)
treeb6a976289a67efffa3e1d6f18fc00b1c54c99850
parentc03cd991a9c54595dedd925fba1294df4fb46348 (diff)
downloadtaginfo-edf776d618335d11652f49bd142ab59926ac6bbb.tar
taginfo-edf776d618335d11652f49bd142ab59926ac6bbb.tar.gz
more API docs
-rw-r--r--web/lib/api/db.rb18
-rw-r--r--web/lib/api/josm.rb8
-rw-r--r--web/lib/api/search.rb24
-rw-r--r--web/lib/api/wiki.rb4
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]