graphql-engine/docs/graphql/core/api-reference/metadata-api/restified-endpoints.rst
Lyndon Maydwell cb85d62078 docs: add info on variable interpretation for primitive URL variables
Additional documentation for REST queries with respect to how url template variables and query variables are interpreted.

* Route variables and Query parameters are interpreted as scalars according to the variables types in the associated query and passed as JSON data through the query variables:
   * Missing nullable variables are interpreted as NULL
   * Boolean variables are interpreted as Bools
   * Boolean flags without values e.g. ``/api/rest/myquery?mybool`` are interpreted as True for boolean variables
   * String variables are interpreted as literal Strings
   * UUID variables are interpreted as strings
   * ID variables are interpreted as strings
   * Number, Int, Float, and Double variables are interpreted as Numbers
   * All other types or mismatches currently report variable type errors

---

### Kodiak commit message

Documentation for variable interpretation for primitive URL variables

#### Commit title
Documentation for variable interpretation for primitive URL variables

Co-authored-by: Rikin Kachhia <54616969+rikinsk@users.noreply.github.com>
GitOrigin-RevId: 2d90facd0e644e275fe752dc393f066fb71490c5
2021-03-04 10:38:51 +00:00

125 lines
2.6 KiB
ReStructuredText

.. meta::
:description: Manage RESTified endpoints with the Hasura metadata API
:keywords: hasura, docs, metadata API, API reference, RESTified endpoints
.. _metadata_api_restified_endpoints:
Metadata API Reference: RESTified GraphQL Endpoints (v1.4 and above)
====================================================================
.. contents:: Table of contents
:backlinks: none
:depth: 1
:local:
Introduction
------------
Add/Remove a RESTified GraphQL endpoint to Hasura GraphQL engine.
.. _metadata_create_rest_endpoint:
create_rest_endpoint
--------------------
``create_rest_endpoint`` is used to associate a URL template with a query.
An example request as follows:
.. code-block:: http
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type": "create_rest_endpoint",
"args": {
"name": "example-name",
"url": "example",
"methods": ["POST","PUT","PATCH"],
"definition": {
"query": {
"query_name": "example_mutation",
"collection_name": "test_collection"
}
},
"comment": "some optional comment"
}
}
.. _metadata_create_rest_endpoint_syntax:
.. list-table::
:header-rows: 1
* - Key
- Required
- Schema
- Description
* - name
- true
- Text
- A unique identifier for the endpoint
* - url
- true
- :ref:`EndpointUrl`
- URL of the REST endpoint
* - methods
- true
- :ref:`EndpointMethods`
- Non-Empty case sensitive list of supported HTTP Methods
* - definition
- true
- :ref:`EndpointDef`
- Definition for the REST endpoint
* - comment
- false
- Text
- comment
.. admonition:: Supported from
RESTified endpoints are supported from versions ``v.2.0.0-alpha.1`` and above.
.. _metadata_drop_rest_endpoint:
drop_rest_endpoint
------------------
``drop_rest_endpoint`` is used to delete an existing RESTified GraphQL Endpoint.
An example request as follows:
.. code-block:: http
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type": "drop_rest_endpoint",
"args": {
"name": "name_of_the_endpoint"
}
}
.. _metadata_drop_rest_endpoint_syntax:
.. list-table::
:header-rows: 1
* - Key
- Required
- Schema
- Description
* - name
- true
- Text
- URL of the RESTified endpoint
.. admonition:: Supported from
RESTified endpoints are supported from versions ``v.2.0.0-alpha.1`` and above.