Overview
REST API is a web application which has all functionality of the storefront but lacks the customer facing parts. In essence this is the facade of services that provide the data and drive storefront functions such as search and navigation, content, price and promotion calculation, authentication, checkout process and customer profile amendment etc.
The rationale for having such web application is twofold: native applications and external CMS.
Apps
REST API can be used by mobile, tablets and desktop applications to support clients that wish to develop native applications that use the YC e-commerce engine. This is especially true in recent years with booming iPhone and Android mobile applications. However it is not limited just to mobile as there is potential for specialised call centre and business-to-business (B2B) desktop applications.
External CMS
With rise of specialised CMS software many businesses wish to manage their Internet presence using unified approach via tools such as Adobe CMS and Alfresco (amongst many others). YC REST API allows to call e-commerce services from within those external CMS supplying catalog, profile and order data as well as facilitating storefront functions. Therefore corporate branding is maintained by external CMS but all data presented to client and complex e-commerce service layer is provided by YC.
Technical specification
REST API provides a number of interfaces that support JSON and XML formats. Both request and response body can be either JSON or XML depending on the Accept and Content-type headers of any particular request.
Authentication is managed via token which is supplied as a cookie and a header via authentication REST API calls.
For detailed documentation on interfaces provided by REST API please refer to swagger spec
We recommend reviewing REST API basics cookbook to get more insight on using these interfaces.
Figure 1 and 2 below show example of search JSON and XML responses. Note that it is possible can mix and match body content type as demonstrated in figure 2 with request made as JSON but response received as XML.
Figure 1: Example search call using JSON mode
Figure 2: Example search call using JSON request mode and XML response mode