All tables (arrays) passed to or returned from API calls need to be contiguous (not contain any
nil elements). If you want to remove an item from an array you use the
table.remove() function rather than setting the element to nil, see the example code here Delete a table element.
Note: Setting an element to
nil is a valid way of deleting a table element, and may be more appropriate than
table.remove() for some purposes.
However it is not compatible with the HTTP methods created by the API designer.
This is because URI parameters are are always passed as strings (because they are part of the HTTP URI request). Therefore there is no way for the Server to identify the datatype (of the incoming string data) and check that it matches the API specification.
Note: This was not a design decision that we made — instead it is part of the HTTP method design standards, URI parameters are always passed as text.
However all is not lost! If you need type checking on your parameters you can simply use Structured Body instead — which is passed as JSON and includes type information. Be aware that the Structured Body is not available for all HTTP methods, they are only supported for: POST, PATCH and PUT.
Occasionally importing changes made in the API designer into a Server channel does not work correctly. When this happens the Server will still present the previous (older) version of the API after the changes are imported.
The first thing to check is that you made a commit after importing changes into your API Server channel.
If your changes are committed and the problem persists — then you can work around this by importing the updated API into a new channel. First rename your old channel, and change the URL Path. Then you can recreate the channel with the original name and URL path — and finally you need to copy over all the handler code from the old server channel.
This behavior appears to be a bug related to Iguana file caching (which is why the new channel fixes the issue).
Occasionally changes made to a Server channel will not be recognized by a generated Client channel. When this happens the Client will still present the previous (older) version of the API after the changes are have been applied to the Server.
You can work around this by creating a new Client channel. First rename your old channel, and change the URL Path. Then you can recreate the channel with the original name and URL path — and finally you need to copy over any code changes you made from the old client channel.
This behavior appears to be a bug related to the client file caching (which is why the new channel fixes the issue).