Forms
In this document
Forms
Forms are a hypermedia control that creates new resources. Forms are generally rendered on the UI as input fields or submit buttons.
With forms, you can discover:
- The properties required to create a resource.
- The link to invoke the creation of a resource.
Cortex forms follow this
format:
- A type that indicates the properties that will be created in the resource.
-
Properties that define the data required to create a resource. Properties are optional, as some resources don't require data to create them.
- Links, called action links, that invoke the creation of a resource. If an action link doesn't exist on the form, the resource cannot be created.
Form Example: Adding to cart
The items resource's addtocartform form link enables you
to add the item to a cart, which means a new cart lineitem resource is
created for the item. The form's type
application/vnd.elasticpath.cart.lineitem indicates the form creates a
cart lineitem resource:
- {
- "rel": "addtocartform",
- "type": "elasticpath.carts.line-item",
- "uri": "/commerce-legacy/carts/items/mobee/m5yxi=/form",
- "href": "http://api.elasticpath.net/cortex/carts/items/mobee/m5yxi=/form"
- }
Retrieving the addtocartform form link returns the form resource, which
lists the properties and actions available for the form. In this example, the form
contains:
- quantity - this property indicates the item's quantity must be specified before the item can be added to cart.
- addtodefaultcart - this action link adds the item to the shopper's cart.
- {
- "self": {
- "type": "elasticpath.carts.line-item",
- "uri": "/commerce-legacy/carts/items/mobee/m5yxi=/form",
- "href": "http://api.elasticpath.net/cortex/carts/items/mobee/m5yxi=/form"
- },
- "quantity": 0
- "links": [
- {
- "rel": "addtodefaultcartaction",
- "uri": "/commerce-legacy/carts/mobee/default/lineitems/items/mobee/m5yxi=",
- "href": "http://api.elasticpath.net/cortex/carts/mobee/default/lineitems/items/mobee/m5yxi="
- }
- ]
- }
To add the item to the cart, construct a POST request using the form fields as the request
body and the URL defined by the action link:
- POST /carts/mobee/default/lineitems/items/mobee/m5yxi=
- Content-Type: application/json
- {
- "quantity" : 1
- }
If the action succeeds, Cortex returns status code 201 CREATED and a Location header with a reference to the newly created resource. If the action succeeds but results in modifying an existing resource rather than creating a new resource, then Cortex returns status code 200 OK and a Location header with a reference to the modified resource.
- 201 CREATED
- Location: http://api.elasticpath.net/cortex/carts/mobee/mjt=/lineitems/gyz=
Forms can be used with the FollowLocation request parameter to reduce the number of calls required to retrieve a newly created resource. Followlocation instructs Cortex to retrieve the resource referenced in the Location header and return it in the response body.