A RESTful Web API described with RDF and hypercontract.
All information necessary to add a Product to the Shopping Cart.
Postal addressed that can be used as Billing Address or Shipping Address when placing an Order. The Order will contain a copy of the address. Changes to an Address do not affect Orders that have been previously placed with that Address.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/Address/schema/application/hal+json","type":"object","properties":{"city":{"$ref":"https://example.hypercontract.org/profile/city/schema/application/hal+json"},"country":{"$ref":"https://example.hypercontract.org/profile/country/schema/application/hal+json"},"name":{"$ref":"https://example.hypercontract.org/profile/name/schema/application/hal+json"},"street":{"$ref":"https://example.hypercontract.org/profile/street/schema/application/hal+json"},"zipCode":{"$ref":"https://example.hypercontract.org/profile/zipCode/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]}},"required":["self"]},"_embedded":{"type":"object","properties":{}}},"required":["city","country","name","street","zipCode"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/ApiRoot/schema/application/hal+json","type":"object","properties":{"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]},"https://example.hypercontract.org/profile/orderHistory":{"$ref":"https://example.hypercontract.org/profile/orderHistory/schema/application/hal+json"},"https://example.hypercontract.org/profile/searchCatalog":{"$ref":"https://example.hypercontract.org/profile/searchCatalog/schema/application/hal+json"},"https://example.hypercontract.org/profile/shoppingCart":{"$ref":"https://example.hypercontract.org/profile/shoppingCart/schema/application/hal+json"},"https://example.hypercontract.org/profile/userProfile":{"$ref":"https://example.hypercontract.org/profile/userProfile/schema/application/hal+json"}},"required":["self"]},"_embedded":{"type":"object","properties":{}}},"required":[]}
The postal address to which the goods will be sent. This is a copy of an Address from the User Profile at the time when the Order was placed.
All information necessary to place a new Order.
An order that has been placed by the user. The Order may be in processing, already fulfilled or cancelled.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/Order/schema/application/hal+json","type":"object","properties":{"orderDate":{"$ref":"https://example.hypercontract.org/profile/orderDate/schema/application/hal+json"},"orderStatus":{"$ref":"https://example.hypercontract.org/profile/orderStatus/schema/application/hal+json"},"orderItems":{"$ref":"https://example.hypercontract.org/profile/orderItems/schema/application/hal+json"},"payment":{"$ref":"https://example.hypercontract.org/profile/payment/schema/application/hal+json"},"billingAddress":{"$ref":"https://example.hypercontract.org/profile/billingAddress/schema/application/hal+json"},"shippingAddress":{"$ref":"https://example.hypercontract.org/profile/shippingAddress/schema/application/hal+json"},"cancellationReason":{"$ref":"https://example.hypercontract.org/profile/cancellationReason/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]},"https://example.hypercontract.org/profile/cancel":{"$ref":"https://example.hypercontract.org/profile/cancel/schema/application/hal+json"}},"required":["self"]},"_embedded":{"type":"object","properties":{}}},"required":["orderDate","orderStatus","orderItems","payment","billingAddress","shippingAddress"]}
All information necessary to cancel an Order.
A list of all Orders that are currently being processed, already fulfilled or have been cancelled by the user.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/OrderHistory/schema/application/hal+json","type":"object","properties":{"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]}},"required":["self"]},"_embedded":{"type":"object","properties":{"https://example.hypercontract.org/profile/orders":{"$ref":"https://example.hypercontract.org/profile/orders/schema/application/hal+json"}}}},"required":[]}
A Product and its quantity as it has been ordered. The Order Item contains a copy of all Product information at the time when the Order was placed.
The payment details that are used to pay for the Order. This is a copy of a Payment Option from the User Profile at the time when the Order was placed.
Payment details that can be used for Payment when placing an Order. The Order will contain a copy of all payment details. Changes to a Payment Option do not affect Orders that have been previously placed with that Payment Option.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/PaymentOption/schema/application/hal+json","type":"object","properties":{"accountOwner":{"$ref":"https://example.hypercontract.org/profile/accountOwner/schema/application/hal+json"},"bic":{"$ref":"https://example.hypercontract.org/profile/bic/schema/application/hal+json"},"iban":{"$ref":"https://example.hypercontract.org/profile/iban/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]}},"required":["self"]},"_embedded":{"type":"object","properties":{}}},"required":["accountOwner","bic","iban"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/Product/schema/application/hal+json","type":"object","properties":{"price":{"$ref":"https://example.hypercontract.org/profile/price/schema/application/hal+json"},"productDescription":{"$ref":"https://example.hypercontract.org/profile/productDescription/schema/application/hal+json"},"productName":{"$ref":"https://example.hypercontract.org/profile/productName/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]},"https://example.hypercontract.org/profile/image":{"$ref":"https://example.hypercontract.org/profile/image/schema/application/hal+json"},"https://example.hypercontract.org/profile/addToShoppingCart":{"$ref":"https://example.hypercontract.org/profile/addToShoppingCart/schema/application/hal+json"}},"required":["self"]},"_embedded":{"type":"object","properties":{}}},"required":["price","productDescription","productName"]}
All information necessary to change the quantity of a Shopping Cart Item.
Search criteria used to search the catalog for Products.
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="td-00.xslt"?> <variable name="queryString" concept-uri="https://example.hypercontract.org/profile/queryString"> <restriction base="string"/> <documentation xml:lang="en">A free-text search term that is used to search the catalog for Products. It is matched against the product name and the product description.</documentation> </variable> <documentation xml:lang="en">Search criteria used to search the catalog for Products.</documentation>
A list of Products matching a Search Query.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/SearchResults/schema/application/hal+json","type":"object","properties":{"totalResults":{"$ref":"https://example.hypercontract.org/profile/totalResults/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]}},"required":["self"]},"_embedded":{"type":"object","properties":{"https://example.hypercontract.org/profile/products":{"$ref":"https://example.hypercontract.org/profile/products/schema/application/hal+json"}}}},"required":["totalResults"]}
The postal address to which the invoice will be sent. This is a copy of an Address from the User Profile at the time when the Order was placed.
A list of Products that the user wants to order.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/ShoppingCart/schema/application/hal+json","type":"object","properties":{"totalPrice":{"$ref":"https://example.hypercontract.org/profile/totalPrice/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]},"https://example.hypercontract.org/profile/placeOrder":{"$ref":"https://example.hypercontract.org/profile/placeOrder/schema/application/hal+json"}},"required":["self"]},"_embedded":{"type":"object","properties":{"https://example.hypercontract.org/profile/items":{"$ref":"https://example.hypercontract.org/profile/items/schema/application/hal+json"}}}},"required":["totalPrice"]}
A Product and the quantity the user wants to order. The Shopping Cart Item contains a copy of all Product information at the time when the Product was added to the Shopping Cart.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/ShoppingCartItem/schema/application/hal+json","type":"object","properties":{"price":{"$ref":"https://example.hypercontract.org/profile/price/schema/application/hal+json"},"productDescription":{"$ref":"https://example.hypercontract.org/profile/productDescription/schema/application/hal+json"},"productName":{"$ref":"https://example.hypercontract.org/profile/productName/schema/application/hal+json"},"quantity":{"$ref":"https://example.hypercontract.org/profile/quantity/schema/application/hal+json"},"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]},"https://example.hypercontract.org/profile/changeQuantity":{"$ref":"https://example.hypercontract.org/profile/changeQuantity/schema/application/hal+json"},"https://example.hypercontract.org/profile/remove":{"$ref":"https://example.hypercontract.org/profile/remove/schema/application/hal+json"},"https://example.hypercontract.org/profile/product":{"$ref":"https://example.hypercontract.org/profile/product/schema/application/hal+json"}},"required":["self"]},"_embedded":{"type":"object","properties":{}}},"required":["price","productDescription","productName","quantity"]}
The list of Shopping Cart Items that have been added to the Shopping Cart
Available Addresses and Payment Options of a user.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/UserProfile/schema/application/hal+json","type":"object","properties":{"_links":{"type":"object","properties":{"self":{"type":"object","properties":{"href":{"type":"string","$comment":"A unique identifier."}},"required":["href"]}},"required":["self"]},"_embedded":{"type":"object","properties":{"https://example.hypercontract.org/profile/addresses":{"$ref":"https://example.hypercontract.org/profile/addresses/schema/application/hal+json"},"https://example.hypercontract.org/profile/paymentOptions":{"$ref":"https://example.hypercontract.org/profile/paymentOptions/schema/application/hal+json"}}}},"required":[]}
Adds a Product as a new Shopping Cart Item to the Shopping Cart or increases the quantity of an existing Shopping Cart Item when the Product has already been added to the Shopping Cart.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/addToShoppingCart/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/addToShoppingCart/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItems>."}
A reference to all Addresses in a User Profile.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/addresses/schema/application/ld+json","type":"array","items":{"oneOf":[{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Address>."},{"$ref":"https://example.hypercontract.org/profile/Address/schema/application/ld+json"}]},"minItems":1}
A reference to the Billing Address of an Order. The name in the Billing Address does not have to be identical to the name of the account owner of the chosen Payment.
Cancels the processing of an order. The status will be set to "Cancelled".
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/cancel/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/cancel/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."}
A free-text reason for why the Order was or is being cancelled.
Change the quantity of a Shopping Cart Item.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/changeQuantity/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/changeQuantity/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/image/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an image."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/image/schema/application/json","type":"string","$comment":"Value is a URI for an image."}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/image/schema/application/ld+json","type":"string","$comment":"Value is a URI for an image."}
An Order can only be cancelled if the order status is still in "Processing".
An Order can only be placed if there is at least one Shopping Cart Item in the Shopping Cart.
The Shopping Cart Items currently in the Shopping Cart.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/items/schema/application/ld+json","type":"array","items":{"oneOf":[{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."},{"$ref":"https://example.hypercontract.org/profile/ShoppingCartItem/schema/application/ld+json"}]}}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/jsonld_id/schema/application/ld+json","type":"string","$comment":"A unique identifier."}
The first and last name of the addressee of an Address.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/orderHistory/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/orderHistory/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."}
The status of the Order. Either "Processing", "Delivered" or "Cancelled".
A reference to Orders in the Order History.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/orders/schema/application/ld+json","type":"array","items":{"oneOf":[{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Order>."},{"$ref":"https://example.hypercontract.org/profile/Order/schema/application/ld+json"}]}}
A reference to the Payment of an Order. The name of the account owner does not have to be indentical to the name in the chosen Billing Address.
A reference to all Payment Options in a User Profile.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/paymentOptions/schema/application/ld+json","type":"array","items":{"oneOf":[{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/PaymentOption>."},{"$ref":"https://example.hypercontract.org/profile/PaymentOption/schema/application/ld+json"}]},"minItems":1}
Places a new Order based on the provided information. The Shopping Cart will be emptied after the Order has been successfully created.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/placeOrder/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/placeOrder/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/OrderHistory>."}
A reference to a Product from the catalog.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/product/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/product/schema/application/json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/product/schema/application/ld+json","oneOf":[{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."},{"$ref":"https://example.hypercontract.org/profile/Product/schema/application/ld+json"}]}
A description of the Product's features and qualities.
A reference to Products from the catalog.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/products/schema/application/ld+json","type":"array","items":{"oneOf":[{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/Product>."},{"$ref":"https://example.hypercontract.org/profile/Product/schema/application/ld+json"}]}}
The number of items ordered or to be ordered.
A free-text search term that is used to search the catalog for Products. It is matched against the product name and the product description.
Removes a Shopping Cart Item from the Shopping Cart.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/remove/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/remove/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCartItem>."}
Searches the catalog for Products matching a Search Query. When no Search Query is provided, all Products will be returned.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/searchCatalog/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/SearchResults>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/searchCatalog/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/SearchResults>."}
A reference to the Shipping Address of an Order.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/shoppingCart/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCart>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/shoppingCart/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/ShoppingCart>."}
A reference to Shopping Cart Items in the Shopping Cart.
The street name and house number of an Address.
The total price of all items in the Shopping Cart. It is calculated by summing up the item's prices multiplied with their respective quantities.
The total number of results matching the Search Query.
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/userProfile/schema/application/hal+json","type":"object","properties":{"href":{"type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/UserProfile>."}},"required":["href"]}
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://example.hypercontract.org/profile/userProfile/schema/application/ld+json","type":"string","$comment":"Value is a URI for an instance of type <https://example.hypercontract.org/profile/UserProfile>."}
The ZIP code of an Address. There are no restrictions on the ZIP code's format.