zerebubuth/openstreetmap-cgimap — pull request #50 by pnorman (2013-08-16 21:12:58+00:00)
Title: Move single- and multi-element calls out of experimental

## Known issues

* `make check` requires `--enable-experimental` because the ruby files test the `/way/id#/full` etc calls

* `HEAD` requests and 405 errors do not work properly. Fixed by #42 and #48, but these problems already impact the map? call without any noticeable complaints

## Test reports

With the merging of the branches above, all tests are passed for single- and multi-element calls. There are some differences from the rails port results:

* The rails port attempts to convert `asdf` to an ID in a request like `/nodes?nodes=asdf` and returns a 404 error, not a 400 error.
* The rails port does not always send a cache-control header on invalid requests
* The rails port throws 500 errors for IDs > 2^64
* When running under webbrick the rails port gives a `Content-Length: 0` header for HEAD requests which is wrong. This does not occur in production.

Except for the first, these are arguably bugs in the rails port. For the first, cgimap's response agrees with the documentation and I doubt anyone is relying on the rails port returning a 404 error on non-numeric IDs because a) it'd be nonsensical b) until recently the rails port returned 500 errors on some forms of invalid requests

One other untested difference is that cgimap does not allow caching of single-element results because it does not send a Last-Modified header.