System REST Endpoints
You can retrieve information about an API, such as the list of entities and resources and their attributes, rather than actual data, using the system REST endpoints that provides. provides these endpoints as metadata services.
lac32
You can retrieve information about an API, such as the list of entities and resources and their attributes, rather than actual data, using the system REST endpoints that
CA Live API Creator
provides. CA Live API Creator
provides these endpoints as metadata services.Prerequisite:
You have access to meta table REST endpoints.For more information about how to grant roles permissions to meta table REST endpoints, see Role-Based Endpoint Access.
The examples shown in this article assume that you are sending an auth token with the request, either in the URL (with the
auth
parameter) or (more commonly) in the Authorization
header.In this article:
4
GET @data_sources
You can retrieve a list of active data sources for the current API using the
@data_sources
endpoint:GET @data_sources
Only auth tokens that have a role with a permission for the
@metatables
pseudo-table can call this endpoint.Response
The following response is expected:
[ { "name": "Finance", "ident": 2009, "prefix": "finance", "comments": null, "schema_editable": false }, { "name": "New database qjtea", "ident": 2159, "prefix": "qjtea", "comments": null, "schema_editable": true } ]
GET @schema/[datasource_prefix]?projectId=123
The
@schema
endpoint can represent specific data source content, such as entities, columns, keys, and relationships. You can retrieve a list of all data source content that you can use to create a new schema by calling the @schema
REST endpoint for a managed data API:GET @schema/[datasource_prefix]?projectId=123
If you use this endpoint in REST Lab, then the prefix must be one in the current API and the
projectId
is optional. If you make this call from an admin endpoint, then the projectId
is required.Schema Definition
Schema is an array of JSON objects for each entity (table) definition. Each table in the schema contains the following:
JSON Object | Description |
| Entity name |
| An array of column string names. |
| An array of columns in JSON.
Attributes:
|
| An array of relationships in JSON.
Attributes:
|
| A collection of primary and candidate keys with each containing the name, type (primary|candidate), columns (array of string names) attributes. |
Advanced Options
The following properties default to
false
if flag is not present:- ignoredbcolumntype=true|falseUsegeneric_typeand subtype instead ofdb_column_type.
- ignoreprimarykeyname=true|falseIgnore the provided primary key name and generate a new name.
- ignoreconstraintname=true|falseIgnore the provided relationship constraint name in parents and generate a new name.This property uses the prefix of the selected API. You must set theisEditabledata source property totrue. You can only call this property using an admin endpoint, for example:/rest/abl/admin/v2/@schema
POST @schema/[datasource_prefix]?projectId=123[&advanced options]
You can create a new schema using the following
@schema
managed data REST endpoint:POST @schema/[datasource_prefix]?projectId=123[&advanced options]
Prerequisite:
The prefix must belong to a data source that is marked as editable.Payload
Use the following request payload:
{ "entity": "LineItem", "primaryKeyColumns": [ "lineitem_id" ], "columns": [ { "name": "lineitem_id", "generic_type": "number", "nullable": false, "subtype": "integer", "autonum": true }, { "name": "product_number", "generic_type": "number", "nullable": false, "subtype": "integer" }, { "name": "order_number", "generic_type": "number", "nullable": false, "subtype": "integer" }, { "name": "qty_ordered", "generic_type": "number", "nullable": false, "subtype": "integer" }, { "name": "product_price", "generic_type": "number", "size": 19, "nullable": true, "subtype": "fixedPoint", "precision": 19, "scale": 4 }, { "name": "amount", "generic_type": "number", "size": 19, "nullable": true, "subtype": "fixedPoint", "precision": 19, "scale": 4 } ], "parents": [ { "relationship_name": "product", "parent_entity": "demo:product", "parent_column_names": [ "product_number" ], "child_column_names": [ "product_number" ] }, { "relationship_name": "lineitem_purchaseorder", "parent_entity": "demo:PurchaseOrder", "parent_column_names": [ "order_number" ], "child_column_names": [ "order_number" ] } ], "keys": [ { "name": "SQL160918190322330", "type": "primary", "columns": [ "lineitem_id" ] } ]}
Response
The following response is expected:
{ "status": 201, "prefix": [datasource_prefix], "number_tables": 7, "number_columns": 35, "number_relationships": 6 }
GET @tables
You can retrieve a list of all tables in an API using the following
@tables
managed data REST endpoint:GET @tables
The API key in question must have access to the resource in question. For example, if you want to retrieve the list of all tables for an API, your API key must have a role with a permission for the
@tables
pseudo-table. You can retrieve full information for a table using the href URL or retrieve full information for all table information using "*".URL
https://server.acme.com/rest/acme/myproject/v1/@tables
Response
The following response is expected:
[ { "@metadata": { "href": "https://api.acme.com/rest/acme/myproject/v1/@tables/main:customer" }, "prefix": "main", "entity": "customer", "name": "main:customer" }, { "@metadata": { "href": "https://api.acme.com/rest/acme/myproject/v1/@tables/main:lineitem" }, "prefix": "main", "entity": "lineitem", "name": "main:lineitem" } ]
GET @tables/[
prefix]
:[tablename]
After you have retrieved the list of tables in an API using the
@tables
managed data REST endpoint, you can retrieve a specific line item in a table by following one of the returned href links.URL
https://server.acme.com/rest/acme/demo/v1/@tables/[prefix]:[tablename]
Response
The following response is expected:
{ "@metadata": {"href": "http://localhost:8080/rest/default/demo/v1/@tables/[prefix]:[tablename]"},"prefix": "demo","entity": "customer","name": "demo:customer","primaryKeyColumns": ["name"],"columns": [{"name": "name","type": "VARCHAR","generic_type": "string","size": 30,"datetime_precision": -1,"nullable": false,"db_column_type": "VARCHAR(30)","length": 30,"fixed_size": false,"computed": false,"is_editable": true,"dbName": ""name"","persistent": true},{"name": "balance","type": "DECIMAL","generic_type": "number","size": 19,"scale": 4,"datetime_precision": -1,"nullable": true,"db_column_type": "DECIMAL(19,4)","subtype": "fixedPoint","precision": 19,"computed": true,"is_editable": false,"dbName": ""balance"","persistent": true },{"name": "credit_limit","type": "DECIMAL","generic_type": "number","size": 19,"scale": 4,"datetime_precision": -1,"nullable": false,"db_column_type": "DECIMAL(19,4)","subtype": "fixedPoint","precision": 19,"computed": false,"is_editable": true,"dbName": ""credit_limit"","persistent": true}],"parents": [],"children": [{"name": "financeOrders","child_table": "finance:orders","child_columns": ["customer_name"],"parent_columns": ["name"]},{"name": "PurchaseOrderList","child_table": "demo:PurchaseOrder","child_columns": ["customer_name"],"parent_columns": ["name"]}], "keys": [{"name": "SQL160816043234940","type": "primary","columns": "name"}]}
POST @tables/[
prefix
]?projectId=[123
]Prerequisites:
- You are logged in to API Creator with the Data designer role.
- The data source in which you want to add a table is marked as editable.For more information about how to mark a data source as editable, see Manage Existing Schemas.
You can add a new table in the data source that was defined using the following
@tables
managed data REST endpoint and the response from the @databases
endpoint:POST @tables/[prefix]?projectId=[123]
Payload
Use the following request payload:
{ "entity": "[mynewtable]" }
Response
The following response is expected:
{ "@metadata": {"href": "http://localhost:8080/rest/default/demo/v1/@tables/demo:customer"},"prefix": "demo","entity": "customer","name": "demo:customer","primaryKeyColumns": ["ident"],"columns": [{"name": "name","type": "VARCHAR","generic_type": "string","size": 30,"datetime_precision": -1,"nullable": false,"db_column_type": "VARCHAR(30)","length": 30,"fixed_size": false,"computed": false,"is_editable": true,"dbName": ""name"","persistent": true,"autonum": true}],"parents": [ ],"children": [ ],"keys": [{"name": "PRIMARY","type": "primary","columns": "ident"}]}
The table is added in the database. API server recognizes this new table as valid after the schema is reloaded.
PUT @tables/[prefix]:[tablename]?projectId=[
123]
Prerequisite:
The data source in which you want to update a table is marked as editable.For more information about how to mark a data source as editable, see Manage Existing Schemas.You can update a table name in the data source using the following @tables
managed data REST endpoint:PUT @tables/[prefix]:[tablename]?projectId=[123]
If you are using multiple databases, prefix your table name with the database name (for example
main:Customer
).Payload
Use the following request payload:
{ "@metadata":{ "href":"http://<host>:<port>/rest/abl/admin/v2/@tables/[prefix]:[tablename]?projectId=[123]" }, "entity":"[new tablename]", }
DELETE @tables/[prefix]:[tablename]?projectId=[
123]
Prerequisites:
- You are logged in to API Creator with the Data designer role.For more information about this role, including all of the roles for creating databases and managing tables, see Database Creation.
- The data source in which you want to delete a table is marked as editable.For more information about how to mark a data source as editable, see Manage Existing Schemas.
You can delete a table in the data source using the following
@tables
managed data REST endpoint:DELETE @tables/[prefix]:[tablename]?projectId=[123]
POST @columns/[prefix]:[tablename]?projectId=[
123
]Prerequisites:
- You are logged in to API Creator with the Data designer role.For more information about this role, including all of the roles for creating databases and managing tables and fields, see Database Creation.
- The data source is marked as editable.For more information about how to mark a data source as editable, see Manage Existing Schemas.
You can create a field in an existing table in the data source using the following
@columns
managed data REST endpoint:POST @columns/[prefix]:[tablename]?projectId=[123]
Use the prefix and table name to know which database the original table was defined. The valid
generic_types
are (string, text, int, decimal, number, date, datetime).Fields represent the columns in your database. The term field is used to stay within the metaphor of applications and screens, and not database terminology.
Payload
Use the following request payload:
{ "generic_type":"text", "name":"[mynewtable_text]", "size":16777216, "nullable":true}
PUT @columns/[prefix]:[tablename]/[columnname]?projectId=[123]
Prerequisites:
- You are logged in to API Creator with the Data designer role.For more information about this role, including all of the roles for creating databases and managing tables and fields, see Database Creation.
- The data source to is marked as editable.
You can modify a field that represents a column in your database in an existing table in the data source using the following
@columns
managed data REST endpoint:PUT @columns/[prefix]:[tablename]/[columnname]?projectId=[123]
Fields represent the columns in your database. The term field is used to stay within the metaphor of applications and screens, and not database terminology.
Payload
Use the following request payload:
{ "name": "[new_column_name]", }
DELETE @columns/[prefix]:[tablename]/[columnname]?projectId=[
123
]You can delete a field in an existing table in the data source using the following
@columns
managed data REST endpoint:DELETE @columns/[prefix]:[tablename]/[columnname]?projectId=[123]
Fields represent the columns in your database. The term field is used to stay within the metaphor of applications and screens, and not database terminology.
Prerequisites:
- You are logged in to API Creator with the Data designer role.
- The data source is marked as editable.
GET @databases?managed_data_server_ident=
12345
You can retrieve the list of managed databases existing on a managed data server using the following
@databases
managed data REST endpoint:GET @databases?managed_data_server_ident=12345
Prerequisites:
- You have an existing managed data server.
- You are logged in to API Creator with the Data designer role.For more information about this role, including all of the roles for creating databases and managing tables and fields, see Database Creation.
Response
The following response is expected:
{ "status": "OK", "number_databases": 2, "databases": [ { "database_name": "bsfst", "number_objects": "47" }, { "database_name": "cpkub", "number_objects": "6" } ]}
Each entry reflects a database/schema in the server. The
number_objects
attribute shows the approximate number of tables and views in the database. This is meant to be a rough indication of the size of the database.POST @databases
Prerequisites:
- You have an existing managed data server.
- You are logged in to API Creator with the Data designer role.For more information about this role, including all of the roles for creating databases and managing tables and fields, see Database Creation.
You can create a new SQL database using the following
@databases
managed data REST endpoint by passing the ident
of the specific server:POST @databases
Payload
Use the following request payload:
{ "managed_data_server_ident": 2000 }
Response
The following response is expected:
{ "status": "OK", "url": "jdbc:mysql://dbserver.acme.com:3306/wcwqj", "name": "wcwqj", "catalog_name": null, "schema_name": "wcwqj", "user_name": "wcwqj", "password": "IotMPl14w0zx", "dbasetype_ident": 1 }
Information about the new SQL database that was created in the managed data server is returned. You can create a new data source (DBSchema) using this information.
DELETE @databases/databasename?managed_data_server_ident=2000
Prerequisite:
You are logged in to API Creator with the Data designer role.You can delete a managed database using the following
@databases
managed data REST endpoint by providing the database name and the managed server ident
value:DELETE @databases/databasename?managed_data_server_ident=2000
For more information about the Data designer role, including all of the roles for creating databases and managing tables and fields, see Database Creation.
GET @relationships
You can get a list of relationship role names using the following
@relationships
REST endpoint:@relationships/childTable=demo:PurchaseOrder
or @relationships/parentTable=demo:Employee
POST @relationships/[prefix]:[tablename]?projectId=[
123
]You can create a parent/child relationship between two tables using the following
@relationships
managed data REST endpoint. Provide the prefix (that belongs to a data source) and the name of the child table using the following syntax:POST @relationships/[prefix]:[tablename]?projectId=[123]
Prerequisites:
- You are logged in to API Creator with the Data designer role.
- The data source is marked as editable.For more information about how to mark a data source as editable, see Manage Existing Schemas.
By default, if you do not pass in parent and child column names,
CA Live API Creator
creates them automatically using the parent primary key (usually ident
) and creates a new field on the child table using the name of the relationship plus the name of the primary key. If you intend to provide the column names, you can override this default behavior using enable_column_creation: false
in the payload. With this payload, CA Live API Creator
attempts to use your provided column names instead, using a lookup of the attribute name(s). If the attribute names are incorrect, the an error is returned.Payload
Use the following request payload:
{ "parent_entity":"Parent!", "relationship_name":"FooBar" } optional field(s): enable_column_creation: [true | false] (default: true) "enable_column_creation": false, "child_column_names": [ "FooBar_ident" ], "parent_column_names": [ "ident" ]
Response
The following response is expected:
{ "status": "OK", "child_entity": "uqhee:Child!!", "parent_entity": "uqhee:Parent!", "child_column_names": [ "FooBar_ident" ], "parent_column_names": [ "ident" ], "relationship_name": "FooBar", "children_role_name": "FooBar_Child$0021$0021_List", "parent_role_name": "FooBar_Parent$0021", "constraint_name": "FK_FooBar_$6486$" }
DELETE @relationships/[prefix]:[tablename]/relationshipname?projectId=123
You can remove a relationship between a parent and child table based on the relationships role name using the following
@relationships
managed data REST endpoint by providing the table prefix+name for the table:DELETE @relationships/prefix:tablename/relationshipname?projectId=123&enableDeleteColumns=true
The relationship role name can be the name to the parent or the name to the child. You can allow API Creator to remove the related foreign key column using the url
?enableDeleteColumns=true
. By default, this value is set to false and API Creator does not delete columns.Prerequisite:
You are logged in to API Creator with the Data designer role.For more information about this role, including all of the roles for creating databases and managing tables and fields, see Database Creation.
Response
The following response is expected:
{ "status": "OK" }
GET @resources[/ident]
You can use similar built-in resources for resources. You can retrieve all resources for the current API using the following
@resource
REST endpoint:GET @resources[/ident]
You can retrieve full information for a resource using the href URL or retrieve full information for all resources using "*".
URL
https://api.acme.com/rest/acme/myproject/v1/@resources
Response
The following response is expected:
[ { "@metadata": { "href": "http://api.acme.com/rest/acme/myproject/v1/@resources/2099" }, "ident": 2099, "name": "ProfileAccounts", "apiVersion": "v1", "functions": [], "description": null, "resource_type": "NORMAL" } ]
The
href
provides a link to retrieve details about the specific resource.GET @functions
You can retrieve all functions for the current API using the following
@functions
RESTful endpoint:GET @functions
A list of function definition objects will result, looking like:
[ { "@metadata": { "href": "http://liveapicreatorurl.com/rest/default/demo/v1/@functions/2004" }, "ident": 2004, "name": "tableResourceParameterizedFunc", "comments": "This is a skeleton function, you should most likely:\n1 - Give it a proper name (the default is a randomly generated 5-letter name)\n2 - Give it a proper comment\n3 - Change the code to do something useful", "is_active": true, "resource_names": [ "AllCustomers", "demo:customer" ], "parameters": [ { "name": "qmzfv", "type": "string", "is_required": false } ] } ]
GET @views[/view_name]
You can retrieve all views for the current API using the following
@views
RESTful endpoint:GET @views[/view_name]
A list of all views for the selected project id is returned. You can retrieve details about the view itself by providing the view name (found in the
href
of the metadata).URL
https://api.acme.com/rest/acme/demo/v1/@views?projectId=[1234]
POST @authentication
You can authenticate a user and obtain an auth token using the following
@authentication
RESTful endpoint:POST @authentication
For more information about authentication, see Authentication.
GET @procedures
You can retrieve metadata about stored procedures using the following
@procedures
RESTful endpoint:GET @procedures
The option
procname
retrieves details about the procedure itself.URL
https://api.acme.com/rest/acme/demo/v1/@procedures?projectId=[1234]
Response
The following response is expected:
[ { "@metadata": { "href": "https://api.acme.com/rest/acme/demo/v1/@procedures/[prefix]:[entity]?projectId=[1234]" }, "prefix": "[prefix]", "entity": "[entity]", "name": "demo:get_employee" }, { "@metadata": { "href": "https://api.acme.com/rest/acme/demo/v1/@procedures/demo:promote_employee?projectId=1234" }, "prefix": "demo", "entity": "promote_employee", "name": "demo:promote_employee" } ]
GET @procedures[/
procedure_name
]After you have retrieved the metadata about stored procedures using the
@procedures
endpoint, you can retrieve full information on a procedure by doing a GET against that procedure's URL:GET @procedures[/procedure_name]
Response
The following response is expected:
{ "@metadata": { "href": "https://api.acme.com/rest/acme/demo/v1/@procedures/[prefix]:[entity]?projectId=[1234]" }, "prefix": "[prefix]", "entity": "[entity]", "name": "demo:get_employee", "args": [ { "name": "given_employee_id", "type": "BIGINT", "direction": "IN" }, { "name": "plus_one", "type": "BIGINT", "direction": "IN_OUT" } ] }
GET @sequences
You can retrieve a list of all the database sequences in use using the following
@sequences
RESTful endpoint:GET @sequences
This call returns an empty array except for those databases that support sequences (like Oracle).
GET @perf
You can retrieve an object containing pointers to the performance statistics using the following
@perf
RESTful endpoint:GET @perf
For more information about the performance metrics, see Analyze Metrics.
GET @perf[[rules | sql | adminSql]?projectId=[2000]
You can retrieve performance statistics for a specific API using the
@perf
endpoint:GET @perf[[rules | sql | adminSql]?projectId=[2000]
This call returns the following statistics:
- Execution of rules.
- Execution of SQL for your database(s).
- Execution of SQL for the admin database.
Response
The following response is expected:
{ "meta": { "currentTime": 42132335320569 }, "stats": [ { "rule": { "ident": 2000, "entity": "demo:customer", "type": "validation", "name": "Validation return row.balance <= row.credit_limit;" }, "firstExecutionTime": 37501167023156, "lastExecutionTime": 37501167023156, "shortestExecutionTime": 1585839, "longestExecutionTime": 1585839, "numberOfExecutions": 1, "totalExecutionTime": 1585839 }, { "rule": { "ident": 2002, "entity": "demo:customer", "type": "sum", "name": "Derive balance as sum(PurchaseOrderList.amount_total where paid = false)" }, "firstExecutionTime": 37501164919658, "lastExecutionTime": 37501164919658, "shortestExecutionTime": 1437219, "longestExecutionTime": 1437219, "numberOfExecutions": 1, "totalExecutionTime": 1437219 }, { "rule": { "ident": 2005, "entity": "demo:PurchaseOrder", "type": "event", "name": "Audit Purchase Order amount changes" }, "firstExecutionTime": 37501158809963, "lastExecutionTime": 37501158809963, "shortestExecutionTime": 10199279, "longestExecutionTime": 10199279, "numberOfExecutions": 1, "totalExecutionTime": 10199279 } ]
GET @serverinfo
You can retrieve information about the server it reached using the following
@serverinfo
RESTful endpoint:GET @serverinfo
Response
The following response is expected:
{ "publicAddress": "12.34.56.78", "hostname": "api.acme.com", "osName": "Linux 2.8", "currentDateTime": "2015-11-10T01:19:27.539Z", "numCores": 8, "freeMemory": 263916512, "maxMemory": 3817865216, "totalMemory": 632291328, "uptime": 621827, "loadAverage": 2.48974609375, "adminSchemaVersion": "20151106", "serverVersion": "2.0" }
GET @dependencies
You can retrieve dependencies information using the following
@dependencies
RESTful endpoint:GET @dependencies
Response
The following response is expected:
[{ "tableName": "LOGICDEMO."LineItem"", "dependencies": [ { "ruleName": "Discounted price*qty", "columnName": "amount", "dependsOn": "product_price" }, { "ruleName": "Discounted price*qty", "columnName": "amount", "dependsOn": "qty_ordered" }, { "ruleName": "Derive product_price as parentcopy(product.price)", "columnName": "product_price", "roleName": "product", "dependsOn": "price" } }, more... ]
GET @docs
You can retrieve a Swagger document about the API using the following
@docs
RESTful endpoint:GET @docs
Response
The following response is expected:
{ "swaggerVersion": "1.2", "consumes": [ "application/json" ], "produces": [ "application/json" ], "apiVersion": "v1", "info": { "title": "Northwind", "description": "Simple order processing demo" }, "authorizations": { "Admin key": { "type": "apiKey", "passAs": "header", "keyname": "Authorization" } }, "apis": [ { "path": "/CustomersBusObject", "description": "resource" }, { "path": "/EmployeesObject", "description": "resource" }, etc...
GET @rules[/ident]
You can retrieve a high-level list of API defined logic rules using the following
@rules
RESTful endpoint:GET @rules[/ident]
Response
The following response is expected:
[ { "@metadata": { "href": "https://api.acme.com/rest/default/demo/v1/@rules/2000" }, "ident": 2000, "bestName": "Validation return row.Balance <= row.CreditLimit;", "name": "", "entityName": "nw:Customers", "columnName": null, "comments": "Observe Error message insertion points {}" }, { "@metadata": { "href": "https://api.acme.com/rest/default/demo/v1/@rules/2001" }, "ident": 2001, "bestName": "adjust the balance to be the sum(OrdersList.AmountTotal) for unshipped orders", "name": "adjust the balance to be the sum(OrdersList.AmountTotal) for unshipped orders", "entityName": "nw:Customers", "columnName": null, "comments": "Adjusts Balance by *reacting* to changes in OrdersList.AmountTotal, including other changes noted in Table/Column help." }, etc...
GET @metatables
You can retrieve a list of most of the APIs listed on this page using the following
@metatables
RESTful endpoint:GET @metatables
Response
The following response is expected:
[ { "@metadata": { "href": "https://api.acme.com/rest/default/demo/v1/@tables" }, "name": "@tables" }, { "@metadata": { "href": "https://api.acme.com/rest/default/demo/v1/@views" }, "name": "@views" }, { "@metadata": { "href": "https://api.acme.com/rest/default/demo/v1/@procedures" }, "name": "@procedures" }, { "@metadata": { "href": "https://api.acme.com/rest/default/demo/v1/@resources" }, "name": "@resources" } ]
GET @auth_provider_info[/ident]
You can retrieve the detail configuration values for this plugin identity manager using the following
@auth_provider_info
endpoint by passing in the ident
of a specific authentication provider:
GET @auth_provider_info[/ident]
GET @login_info
You can create a login dialog by retrieving the default values used by the authentication provider using the following
@login_info
endpoint:GET @login_info
For more information about authentication, see Authentication.
GET @apps[/appid]
You can retrieve a list of the applications and definitions (table settings and skins) for the
appid
you identify using the following @apps
endpoint:GET @apps[/appid]
Response
The following response is expected:
[ { "@metadata": { "href": "http://api.acme.com/rest/default/sample/v1/@apps/2000" }, "ident": 2000, "name": "Default app", "description": null } ]
GET @eula[/eula_code]
You can retrieve the End User License Agreement (EULA), which supports multiple languages, using the following
@eula
endpoint:GET @eula[/eula_code]
URL
GET https://api.acme.com/rest/default/demo/v1/@eula/ENU
Response
The following response is expected:
"eula_code": "ENU", "eula_accepted": true, "eula_accepted_code": "ENU", "eula_acceptance_detail": "accepted ENU 2016-07-14T18:54:28Z", "eula": "CA End User License Agreement (the "Agreement") ... truncated
POST @eula
@eula
endpoint:
POST @eula
Response
The following response is expected:
{"eula_accepted": true, "eula_code": "ENU"}
GET @license
You can retrieve a value that depends on whether the call includes an auth token (is authenticated) or not using the
@license
endpoint:GET @license
URL
GET https://api.acme.com/rest/default/demo/v1/@license
Response
If the call includes an auth token, the following response is expected:
{ "company": "Acme Corp.", "organization": "Accounting", "location": "New York, NY, USA", "license_type": "PRODUCTION", "license_expiration": "2017-12-31T23:59:59.999Z", "product_version": "2", "max_cores": 8, "max_memory": 1024, "max_projects": 0, "max_requests": 0, "max_resources": 0, "max_rules": 0, "eula": "Lorem ipsum etc..." }
If the call does not include an authentication token, the following response is expected:
{ "company": "Acme Corp.", "organization": "Accounting", "location": "New York, NY, USA", "license_type": "PRODUCTION", "license_expiration": "2017-12-31T23:59:59.999Z" }
GET @heartbeat
You can retrieve the server status using the
@heartbeat
endpoint:GET @heartbeat
URL
GET https://api.acme.com/rest/default/demo/v1/@heartbeat
Response
The following response is expected:
{ "status": "OK"}
If the value of status is anything but
OK
, then the server is not feeling well. Otherwise, the server is most likely OK.GET @apioptions
You can retrieve a list of the API options for the current API, including the option's name and value, using the
@apioptions
endpoint:GET @apioptions
URL
GET https://api.acme.com/rest/default/myproj/v1/@apioptions
Response
The following response is expected:
{ "1": { "name": "Aggregate Default Override", "option_value": "false" }, "2": { "name": "Type base URI", "option_value": "urn:caliveapicreator:demo:" }, "3": { "name": "HTTPS only", "option_value": "false" }, etc...
where the key (for example, 1, 2, 3) is the ID of the option type (the name is the human-readable equivalent).
Script the Meta Tag Information
You can script the meta tag information using the command line interface (CLI). For a complete list, download the file.
The following code snippet shows the contents of this file:
#! /bin/bash # Uses NodeJS and the command line interface # npm install liveapicreator-cli -g # Live API Creator meta @ rest endpoints #echo 1 # Note that the URL contains the entire path to the project lac login -u demo -p Password1 http://localhost:8080/APIServer/rest/default/nwindb2b/v1 -a localnw lac use localnw #Show the current license info (add --format json) for full EULA lac get @license #returns OK if server is up lac get @heartbeat # Show All Tables and columns for selected table lac get @tables lac get @tables/nw:Customers # Show All views and columns for selected view lac get @views lac get @views/nw:Current%20Product%20List # Show All Resoures and attribute for selected resources (using ident) lac get @resources lac get @resources/2961 # Show All Store Proc and attribute for selected proc (using ident) lac get @procedures #lac get @procedures/somename #Show the performance metrics for sql, rules, and admin SQL (add --format json) for detailed view lac get @perf --format json lac get @perf/sql?projectId=2047 lac get @perf/rules?projectId=2047 lac get @perf/adminSql?projectId=2047 # Swagger 1.2 doc format lac get @docs lac get @docs/nw:Customers #List of Rules lac get @rules #API settings lac get @apioptions #Information on the default auth provider lac get @auth_provider_info/1000 #Information from the Auth Provider lac get @login_info
For more information about the CLI, including how to install it and how to use it, see Install NodeJS.