JADE  Environment Development Ideas

Support for standard REST URL structure.

REST Resource Naming Best Practices, as defined at https://restfulapi.net/resource-naming/ suggest that query strings should be used for filtering a resource collection.

For example,

http://api.example.com/device-management/managed-devices?region=USA&brand=XYZ

 

However, JADE-style REST URLs are of the form  

IIS server URL/jadehttp.dll/path[.xml|json|jsonn]?app_name[&extra_info]

 

The ?app_name part is non-standard, and causes some third party tools (such as the .NET REST Client RestSharp) to be less effective at generating the URLs needed for consuming REST services from JADE.

 

The idea is to allow for JADE to provide the ability to implement REST services using the standard URL structure.

  • Tim Aitchison
  • Jul 2 2019
  • Closed
  • Attach files
  • Kevin Saul commented
    02 Jul 05:21

    Presumably, the application to use would need to be inferred another way - Would it be possible to do that without exposing the application name as part of the URL at all?  If so, would it make sense to support this for any type of web application as it may be useful in scenarios where we need to transition/redirect to a different application (without breaking previous links).

  • Tim Aitchison commented
    08 Jul 23:35

    There is an existing solution for this - using the URL rewrite feature of IIS we can accept a url of standard form, and then just rewrite it to put the app name in before sending it along to JADE (see https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module)

    So far as I can tell this would allow for the changing of an application without breaking existing links. It does depend on being able to deduce the application name based on the other parts of the URL - for example you might know that Foos are only found in the Bar application, so we could rewrite 

    http://localhost/Foos/42

      to 

    http://localhost/jadehttp.dll/Foos/42?Bar

      And then when we decide actually we want Bar to be renamed to Meh then we could just change the rewrite rule to spit out: 

    http://localhost/jadehttp.dll/Foos/42?Meh

     

    I'm curious as to whether anyone has used this, and whether there are any limitations with it that are pain points for people.

  • Allistar Melville commented
    10 Jul 16:02

    We use URL rewriting to make the URL more standard and to remove the dll and app name from the URL. This allows us to have a typical controller/method URL syntax. This works well.

  • Admin
    Ashley Bass commented
    18 Jul 04:17

    Closing because we have verified the workaround works for the primary use case. @tim will post more details if needed.