API Builder Standalone - 17 August 2018

API Builder Standalone - Canberra

Summary

This release includes:

Features

  • #4532: Support data connectors actual primary key type in API, models, and flows
  • #4724: Support for Models based on tables that have no primary key.

Fixes

  • #4791: Model flow-node distinct method's schema does not support PK field
  • #4834: UI not showing error pages when internal errors occur.
  • #4855: Show better CLI error when using unsupported node version
  • #4869: Config: apiPrefix is not validated for a required leading slash.
  • #4916: Endpoints with names that require URI encoding can't be opened in the UI
  • #4920: Improve the findAndModify Swagger documentation

Release Notes

  • #4532: Previously, APIs and flows generated for models created by data connectors assumed IDs were of type string. Now, the APIs and flows will use the primary key type for the IDs.

  • #4724: Previously, if a model was created for a table that had no primary key the auto-generated APIs did not work. Now, the correct set of APIs will be generated and work as expected.

  • #4791: Previously, distinct method schema did not allow using of the primary key field. Now, the primary key field is added to the schema and can be specified in distinct queries.

  • #4834: Previously, errors in API Builder runtime or invalid views in the console would not render an error page and may have caused errors in the browser. Now, a consumable error page is shown when most errors occur.

  • #4855: Previously, when running the API Builder CLI on an unsupported Node.js version, there would be an unhelpful syntax error. Now, a useful error is output on install and when running a command which tells the user which version of Node.js to use.

  • #4869: Previously, setting value without leading slash to apiPrefix configuration parameter resulted in active service with improperly bound paths. Now, validation has been added for the apiPrefix parameter, if the leading slash is missing exceptions are thrown and the service loading is interrupted.

  • #4916: Previously, if the endpoint filename contained a % symbol the API Builder Console could not open the detail page for that endpoint. Now, the endpoint detail page will open as expected.

  • #4920: Previously, the findAndModify method had a misleading description stated that only a single object is found and modified. Now, it is corrected to denote that multiple objects could be found but only the first one in the list gets modified.

Deprecations

Updated modules

Updated plugins

Known Issues

  • #3825: Filtering the API Builder Console administrator access using IPv6 addresses may cause ENOTFOUND errors.

  • #3867: When attempting to create and save a flow for an imported Swagger endpoint that contains a path or paths defined by references the save will fail.

  • #3960: API Builder has issues with recognizing a required consumes value if anything is appended to it, for example multipart/form-data; charset=utf-8.

  • #3979: Attempting to delete an endpoint in the UI that was created as a result of dereferencing a JSON $ref will yield a 404. API Builder will fail to locate the method since it only exists when the whole Swagger document is dereferenced. An example of a Swagger document using $ref:

    {
    	"swagger": "2.0",
    	"paths" {
    		"x-path": {
    			"get": {}
    		},
    		"/find": {
    			"$ref": "#/paths/x-path"
    		},
    		"/search": {
    			"$ref": "#/paths/x-path"
    		}
    
    	}
    }
    
  • #4050: When rendering the flow editor, the API Builder Console may fail to render the Scalable Vector Graphics (SVG) icons correctly in the Firefox browser. The render failure may result in blank icons being displayed in the tool panel and in the flow diagram. This is due to a long-standing bug in Firefox that fails to scale SVG graphics correctly. To fix, edit the SVG icon and add height and width. For example: <svg ... height="80" width="80" />

  • #4280: Editing large object parameters on the API Orchestration page in the API Builder Console may cause multiple, confusing flow-node configuration panel scroll-bars to appear.

  • #4716: Given a data connector that generates models from a database, and is configured to auto-generate the API for those models (modelAutogen is set to true), and there exists a table with no primary key, then the API Builder will not able to handle the following methods: Update, Delete, Find By ID, Find and Modify, and Upsert.

  • #4736: Given a swagger with an extension, for example, on the path item object, the Swagger flow-node plugin can fail to load the swagger file, resulting in an error:

    Error loading plugin: @axway/api-builder-plugin-fn-swagger. Cannot convert undefined or null to object
    
  • #4752: The format of a distinct query's response depends on the type of the connector.

  • #4759: Calling Update or FindAndModify on a Model that uses the composite connector and contains required fields may fail and cause the server to terminate.

  • #4795: The MongoDB plugin api-builder-plugin-dc-mongo does not correctly support primary keys that are not object identifiers. The MongoDB specification allows for primary keys of other types. As a result, trying to use the plugin will result in errors:

     { "message": "Invalid Value for Find By ID: "YOUR_STRING_PK_NAME", "success": false, "request-id": "c118f187-2090-4a68-b939-37367ac55b80" }
    
  • #4813: If the endpoint swagger file in /endpoints contains special characters in its name, for example [test].json, the endpoint is not rendered correctly in the UI.

  • #4865: The Swagger flow-node plugin strips characters from valid object definition names which can result in schema ID collisions.

  • #4865: The Swagger flow-node plugin does not handle valid object definition names with ~ or / in their name and can result in an invalid schema references in swagger flow-nodes.

  • #4961: Having the '%' symbol in various file names can cause problems in the API Builder Console and with direct linking. It is therefore advisable to avoid using '%' in API, Endpoint, Flow, Model, and Configuration file names. This is a result of an issue in react-router/history. https://github.com/ReactTraining/history/issues/505

  • #4966: API Builder will generate invalid Swagger for programmatic API in ./apis that bind to a path other than the apiPrefix defined in the configuration. These API must be bound to the same root path as is defined by apiPrefix.

Related Links