API Reference

The ItemPath API is based around REST (https://en.wikipedia.org/wiki/Representational_state_transfer).

In REST, there are up to 5 endpoints for every resource.

For example, here are the endpoints for materials:

  • GET /api/materials, a list of materials with optional get parameters
  • POST /api/materials, used to create a new material
  • GET /api/materials/:id, for accessing a singular material by id
  • POST /api/materials/:id, for updating a singular material by id
  • DELETE /api/materials/:id, for removing a material

These endpoints are standard across all REST API's.

What PowerPick components are required for the ItemPath API?

  • ItemPath requires 1 PowerPick CEU Web Services Interface module which enables 1 login for the API to access the program.
  • In some more involved cases, additional Web Services licenses may be required.
  • Other PowerPick modules selected should reflect what the customer needs PowerPick to do (e.g. Order Processing)

This API provides a bridge and a REST interface for the PowerPick databases and hardware. This information is collected from the PowerPick database, formatted, and exposed via a TCP IP connection.

What else is required?

Hosted:

  • A connection string to the PPG database, and an open (secure) port)
  • See Requirements (Hosted) for more details

On-Premise:

  • A server (preferably Linux) to host the application. We recommend a secure connection for us to monitor the system.
  • For more details, see

Authentication

The API uses JWT tokens to authenticate users and API access. Before being able to access endpoints in the API, you'll need to have a username and password. The default user and password is available during the install process. Otherwise, you'll need to gain a username from a current authenticated user, either through the API, or the interface.

Logging in via the API

You can login using your credentials via /api/users/login. You will need to pass your username and password via the POST body:

POST /api/users/login

{
 "username": "Sample API",
 "password": "testing"
}

Once you've logged in, you'll receive 2 JWT tokens in the response (an access token and a refresh token). The access token will need to be passed in the header of every API request, looking like this:

Authorization: Bearer {JWT Access token}

If the username/password has been tagged as a software connection, you'll be able to upgrade your JWT access token to be non-expiring by using this endpoint. Be aware that you will need to pass in the refresh token for this endpoint instead:

GET /api/users/application-token