Calling the Norce [Storm] API
The Norce [Storm] API is a Web Service API that utilizes REST (or SOAP) to provide service to an eCommerce application through the Norce [Storm] platform.
Documentation
You can find the reference documentation here.
Environments
Norce provides several environments.
Production
The old production environment resides at api.storm.io, while the new one on Azure has client-specific host names: [clientname].storm.io/api.
Lab
The lab environment is where the current or upcoming version of the code is running, and it is intended for development and experimentation purposes. To access this environment, use the hostname api.lab.storm.io.
Demo
The Demo environment is exclusively for running the Demo client, but it is open for testing and experimentation. To access this environment, use the hostname demo.storm.io.
Additional environments
It is possible to create extra environments for a client by setting up a new client tenant. These environments can be utilized as parallel testing environments or for developing new features. However, keep in mind that additional environments generally come with extra costs.
API Examples
See our postman collection with API examples here:
- Norce [Storm] API examples , read about our postman examples here .
Communication protocols
It is recommended to use REST in the interactions with the Norce [Storm] API, even though all features support both REST and SOAP.
Authentication and authorization
Norce [Storm] API uses OAuth2 for authentication. The credentials are created in the admin UI, see Accessing API's with OAuth2 accounts for more information.
Note
Previously, the Norce [Storm] API utilized Client Certificates to authenticate API calls, but this feature has been disabled and is no longer in use. Old client certificates are no longer renewed.
Installation
To set up the OAuth2 access, see Accessing API's with OAuth2 accounts for more information.
If you are using the client libraries provided in the open source, see the specific documentation for those here (GitHub).
Status codes and errors
The Norce [Storm] API uses the standard HTTP status codes. The Norce [Storm] API can return two types of status codes for errors:
- "Internal Server Error" (500) and
- "Bad Request" (400).
In the case of a bad request, additional information will also be provided in the response body.
Here is an example:
{
"MessageId": 0,
"Message": "The basket is missing. Try deleting the cookies for this site and try again.",
"Orchestration": null,
"TimeStamp": "/Date(1591968688391+0200)/",
"Record": "<NameValues xmlns=\"Enferno.Services.Contracts.Expose\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><Item><Name>QuotationMissing</Name><Value>The basket is missing. Try deleting the cookies for this site and try again.</Value></Item></NameValues>",
"Messages": [
{
"Key": "QuotationMissing",
"Value": "The basket is missing. Try deleting the cookies for this site and try again."
}
]
}
The error response contract has a Messages collection with items having Key and Value fields. See all the possible error messages here: ListErrorMessages
Client libraries
Read about the open source resources here.
Sample application
Read more about the sample storefront application here: The Sample Storefront project Here is the sample storefront application on github