wp-api-console icon indicating copy to clipboard operation
wp-api-console copied to clipboard

Escaping `/` and `::` in endpoint URLs

Open nylen opened this issue 9 years ago • 0 comments

I tested out Jetpack sites installed into subdomains. In the existing (old) console it is pretty badly broken, but it is mostly working correctly here.

Test cases

v1 API; enter make.wordpress.org/core into site field

image

This does not work - it sends a request to v1.1/sites/make.wordpress.org/core/posts/ which is a 404 of course.

v1 API; enter make.wordpress.org%2Fcore into site field

This works correctly.

v1 API; enter make.wordpress.org/core into URL directly

image

This does not work, and we shouldn't expect it to work. There's no reliable way to tell that this is a URL for the /posts endpoint.

v1 API; enter make.wordpress.org%2Fcore into URL directly

This works correctly.

v1 API; enter make.wordpress.org::core into site field or into URL directly

This is sent to the server correctly, but the v1 API does not support it.

v2 API; enter make.wordpress.org/core or make.wordpress.org%2Fcore

This is sent to the server in the same way as the v1 API, but the v2 API does not support it.

v2 API; enter make.wordpress.org::core into site field or into URL directly

This works correctly.

Potential improvements

  1. If / is entered into a site URL field, transform it into %2F
  2. If :: is entered for the v1 API, transform it into %2F
  3. If / or %2F are entered for the v2 API, transform it into ::

nylen avatar Nov 15 '16 19:11 nylen