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:

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:

Copy
Copied
{
    "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\"&gt;&lt;Item&gt;&lt;Name&gt;QuotationMissing&lt;/Name&gt;&lt;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

Suggested further reading