Windshaft-cartodb/docs/Routes.md
Raul Ochoa d09998cce1 Extra notes about optional but deprecated endpoints
- /tiles/layergroup
- /tiles/template
2015-03-12 12:57:29 +01:00

4.8 KiB

This document list all routes available in Windshaft-cartodb Maps API server.

Routes list

  1. GET (?:/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y@:scale_factor?x.:format {:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1)
    Notes: Mapnik retina tiles [0]

  2. GET (?:/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y.:format {:token(f),:z(f),:x(f),:y(f),:format(f)} (1)
    Notes: Mapnik tiles [0]

  3. GET (?:/api/v1/map|/tiles/layergroup)/:token/:layer/:z/:x/:y.(:format) {:token(f),:layer(f),:z(f),:x(f),:y(f),:format(f)} (1)
    Notes: Per :layer rendering based on :format [0]

  4. GET (?:/api/v1/map|/tiles/layergroup) {} (1)
    Notes: Map instantiation [0]

  5. GET (?:/api/v1/map|/tiles/layergroup)/:token/:layer/attributes/:fid {:token(f),:layer(f),:fid(f)} (1)
    Notes: Endpoint for info windows data, alternative for sql api when tables are private [0]

  6. GET (?:/api/v1/map|/tiles/layergroup)/static/center/:token/:z/:lat/:lng/:width/:height.:format {:token(f),:z(f),:lat(f),:lng(f),:width(f),:height(f),:format(f)} (1)
    Notes: Static Maps API [0]

  7. GET (?:/api/v1/map|/tiles/layergroup)/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format {:token(f),:west(f),:south(f),:east(f),:north(f),:width(f),:height(f),:format(f)} (1)
    Notes: Static Maps API [0]

  8. GET / {} (1)
    Notes: Welcome message

  9. GET /version {} (1)
    Notes: Return relevant module versions: mapnik, grainstore, etc

  10. GET /tiles/:table/:z/:x/:y.* {:table(f),:z(f),:x(f),:y(f)} (1)
    Notes: [DEPRECATED] Per :table tiles rendering

  11. GET /tiles/:table/style {:table(f)} (1)
    Notes: [DEPRECATED] Style for :table

  12. GET (?:/api/v1/map/named|/tiles/template)/:template_id/jsonp {:template_id(f)} (1)
    Notes: Named maps JSONP instantiation [1]

  13. GET (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)
    Notes: Named map retrieval (w/ API KEY) [1]

  14. GET (?:/api/v1/map/named|/tiles/template) {} (1)
    Notes: List named maps (w/ API KEY) [1]

  15. GET /tiles/:table/infowindow {:table(f)} (1)
    Notes: [DEPRECATED] retrieve info window template for :table

  16. GET /tiles/:table/map_metadata {:table(f)} (1)
    Notes: [DEPRECATED] retrieve map metadata for :table

  17. GET /health {} (1)
    Notes: Healt check

  18. OPTIONS (?:/api/v1/map|/tiles/layergroup) {} (1)
    Notes: CORS [0]

  19. OPTIONS /tiles/:table/:z/:x/:y.* {:table(f),:z(f),:x(f),:y(f)} (1)
    Notes: [DEPRECATED] CORS

  20. OPTIONS /tiles/:table/style {:table(f)} (1)
    Notes: [DEPRECATED] CORS

  21. OPTIONS (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)
    Notes: CORS [1]

  22. POST (?:/api/v1/map|/tiles/layergroup) {} (1)
    Notes: Map instantiation [0]

  23. POST /tiles/:table/style {:table(f)} (1)
    Notes: [DEPRECATED] Create style for :table

  24. POST (?:/api/v1/map/named|/tiles/template) {} (1)
    Notes: Create named map (w/ API KEY) [1]

  25. POST (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)
    Notes: Instantiate named map [1]

  26. DELETE /tiles/:table/style {:table(f)} (1)
    Notes: [DEPRECATED] Delete :table style

  27. DELETE (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)
    Notes: Delete named map (w/ API KEY) [1]

  28. DELETE /tiles/:table/flush_cache {:table(f)} (1)
    Notes: [DEPRECATED] Flush internal caches for :table

  29. PUT (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)
    Notes: Update a named map (w/ API KEY) [1]

Optional deprecated routes

[0] /tiles/layergroup is deprecated and /api/v1/map should be used but we keep it for now. [1] /tiles/template is deprecated and /api/v1/map/named should be used but we keep it for now.

How to generate the list of routes

Something like the following patch should do the trick

diff --git a/lib/cartodb/cartodb_windshaft.js b/lib/cartodb/cartodb_windshaft.js
index 477a4c2..f69eebb 100644
--- a/lib/cartodb/cartodb_windshaft.js
+++ b/lib/cartodb/cartodb_windshaft.js
@@ -242,6 +242,20 @@ var CartodbWindshaft = function(serverOptions) {
         }
     });

+    var format = require('util').format;
+    var routesNotes = Object.keys(ws.routes.routes)
+        .map(function(method) { return ws.routes.routes[method]; })
+        .reduce(function(previous, current) { current.map(function(r) { previous.push(r) }); return previous;}, [])
+        .map(function(route) {
+            return format("\n1. `%s %s {%s} (%d)`\n<br/>Notes: [DEPRECATED]? ",
+                route.method.toUpperCase(),
+                route.path,
+                route.keys.map(function(k) { return format(':%s(%s)', k.name, k.optional ? 't' : 'f'); } ).join(','),
+                route.callbacks.length
+            );
+        });
+    console.log(routesNotes.join('\n'));
+
     return ws;
 };