itemsense-client

ItemSense API Client Wrapper

License

License

Categories

Categories

CLI User Interface
GroupId

GroupId

com.impinj
ArtifactId

ArtifactId

itemsense-client
Last Version

Last Version

5.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

itemsense-client
ItemSense API Client Wrapper
Project URL

Project URL

http://developer.impinj.com

Download itemsense-client

How to add to project

<!-- https://jarcasting.com/artifacts/com.impinj/itemsense-client/ -->
<dependency>
    <groupId>com.impinj</groupId>
    <artifactId>itemsense-client</artifactId>
    <version>5.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.impinj/itemsense-client/
implementation 'com.impinj:itemsense-client:5.1.0'
// https://jarcasting.com/artifacts/com.impinj/itemsense-client/
implementation ("com.impinj:itemsense-client:5.1.0")
'com.impinj:itemsense-client:jar:5.1.0'
<dependency org="com.impinj" name="itemsense-client" rev="5.1.0">
  <artifact name="itemsense-client" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.impinj', module='itemsense-client', version='5.1.0')
)
libraryDependencies += "com.impinj" % "itemsense-client" % "5.1.0"
[com.impinj/itemsense-client "5.1.0"]

Dependencies

compile (14)

Group / Artifact Type Version
ch.qos.logback : logback-classic jar 1.2.3
org.slf4j : log4j-over-slf4j jar 1.7.25
net.dongliu : gson-java8-datatype jar 1.1.0
com.fasterxml.jackson.core : jackson-core jar 2.9.7
com.fasterxml.jackson.core : jackson-databind jar 2.9.7
com.fasterxml.jackson.core : jackson-annotations jar 2.9.7
com.fasterxml.jackson.datatype : jackson-datatype-jsr310 jar 2.9.7
com.fasterxml.jackson.jaxrs : jackson-jaxrs-json-provider jar 2.9.7
javax.ws.rs : javax.ws.rs-api jar 2.1.1
com.rabbitmq : amqp-client jar 5.5.0
com.google.code.gson : gson jar 2.8.5
org.hamcrest : hamcrest-all jar 1.3
com.google.guava : guava jar 27.0-jre
org.apache.commons : commons-lang3 jar 3.8.1

runtime (1)

Group / Artifact Type Version
com.fasterxml.jackson.datatype : jackson-datatype-jdk8 jar 2.9.7

test (5)

Group / Artifact Type Version
org.glassfish.jersey.core : jersey-client jar 2.27
org.glassfish.jersey.media : jersey-media-json-jackson jar 2.27
org.glassfish.jersey.inject : jersey-hk2 jar 2.27
junit : junit jar 4.12
com.github.tomakehurst : wiremock jar 2.19.0

Project Modules

There are no modules declared in this project.

itemsense-java

itemsense-java is an API wrapper library for Impinj's ItemSense.

Install

itemsense-java is available as a dependency on Maven Central here.

<dependency>
	<groupId>com.impinj</groupId>
	<artifactId>itemsense-client</artifactId>
	<version>5.1.0</version>
</dependency>

Dependencies

To use the client library, you need to create an HTTP client, which is an implementation of javax.ws.rs.client.Client, as well as include a JSON Jackson de/serialization provider in the classpath:

Note: do not use the jersey-media-json-jackson as the Jackson de/serialization library. It has known issues with de/serializing collection classes (of which there are many in the ItemSense API).

<dependency>
  <groupId>org.glassfish.jersey.core</groupId>
  <artifactId>jersey-client</artifactId>
  <version>2.27</version>
</dependency>

<dependency>
  <groupId>org.glassfish.jersey.media</groupId>
  <artifactId>jersey-media-json-jackson</artifactId>
  <version>2.27</version>
</dependency>

<dependency>
  <groupId>com.fasterxml.jackson.jaxrs</groupId>
  <artifactId>jackson-jaxrs-base</artifactId>
  <version>2.9.7</version>
</dependency>

The following sample creates a Jersey client, and makes a call to both the configuration API and the data API. You can extend this sample to fulfill the needs of your application.

The ITEMSENSE BASE URL is the protocol and name (or IP address) of your ItemSense server, with the itemsense prefix. For example: http://itemsense.mycompany.com/itemsense

package com.mycompany;

import com.impinj.itemsense.client.coordinator.CoordinatorApiController;
import com.impinj.itemsense.client.coordinator.facility.Facility;
import com.impinj.itemsense.client.data.DataApiController;
import com.impinj.itemsense.client.data.item.Item;

import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.jackson.JacksonFeature;
import com.impinj.itemsense.client.data.itemhistory.ItemHistory;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;

import java.net.URI;

import java.util.List;
import java.util.logging.Logger;

public class App
{
    public static void main( String[] args ) {

      final String url = "<ENTER YOUR ITEMSENSE BASE URL HERE>";
      final String username = "<ENTER YOUR ITEMSENSE USERNAME HERE>";
      final String password = "<ENTER YOUR ITEMSENSE PASSWORD HERE>";

      final Logger logger = Logger.getLogger(App.class.getName());

      final LoggingFilter filter = new LoggingFilter();

      logger.info("Running at: " + url + " with user: " + username );

      Client client = ClientBuilder.newClient()
          .register(JacksonFeature.class)
          .register(filter)
          .register(HttpAuthenticationFeature.basic(username, password));

      CoordinatorApiController configApi = new CoordinatorApiController(client, URI.create(url));

      List<Facility> facilities = configApi.getFacilityController().getAllFacilities();

      if (facilities == null) {
        logger.severe("Facilities is null - aborting");
        return;
      }

      for (Facility facility : facilities) {
        logger.info(facility.toString());
      }
      
      DataApiController dataApi = new DataApiController(client, URI.create(url));

      List<Item> items = dataApi.getItemController().getAllItems();

      if (items == null) {
        logger.severe("Items is null - aborting");
        return;
      }

      for (Item item: items) {
        logger.info(item.toString());
      }

    }
}

Table of Contents

  1. Authentication
  2. Users
  3. Global Configuration
  4. Software Versions
  5. Zone Maps
  6. Current Zone Map
  7. Reader Definitions
  8. Reader Configurations
  9. Reader Health
  10. Recipes
  11. Jobs
  12. Items

Authentication

For more information about authentication, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC15

Methods of CoordinatorApiController.getAuthorizationController:

public Token getToken() 

public Token getToken(String username)

public List<ListTokenResponse> listTokens(String username)

public User validateToken(Token token)

public void revokeToken(Token token) 

public void revokeTokens(String username)

Users

For information about users, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC6

Methods of CoordinatorApiController.getUserController:

public User getUserController().getUser(username) // returns a user object based on username

public List<User> getUserController().getUsers() // returns all of the users for an itemsense instance

public User getUserController().createUser(user) // creates a user

pubic User getUserController().updateUser(user) // updates a user 

public void getUserController().deleteUser(user) // deletes a user

Global Configuration

SNMP Configuration

Methods of CoordinatorApiController.getSnmpController:

public SnmpConfiguration getSnmpConfiguration()

public void deleteSnmpConfiguration()

public SnmpConfiguration updateSnmpConfiguration(SnmpConfiguration snmpConfiguration)

Software Versions

Methods of CoordinatorApiController.getSoftwareVersionsController:

public List<VersionInfoView> getVersions(ImageType imageType)

public VersionInfoView getVersion(ImageType imageType, String softwareVersionId)

Software Upgrades

Methods of CoordinatorApiController.getSoftwareUpgradesController:

public List<UpgradeRequestView> getUpgradeRequests()

public UpgradeStatus getUpgradeStatus(String upgradeInstanceId)

public StartUpgradeResponse startUpgrade(UpgradeRequest upgradeRequest)

public void stopUpgrade(String upgradeInstanceId)

Facilities

For information about facilities, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC23

Methods of CoordinatorApiController.getFacilitiesController:

public Facility getFacilityController().getFacility(facilityName) // returns a facility object based on the name

public List<Facility> getFacilityController().getFacilities() // returns all of the facilities for an itemsense instance

public Facility getFacilityController().createFacility(facility) // creates a facility

public Facility getFacilityController().updateFacility(facility) // updates a faciity

public void getFacilityController().deleteFacility(facilityName) // deletes a faciity

Zone Maps

For information about zone maps, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC29

Methods of CoordinatorApiController.getZoneMapController:

public ZoneMap getZoneMapController().getZoneMap(zoneMapName) // returns a zone map object based on the name

public List<ZoneMap> getZoneMapController().getZoneMaps() // returns all of the zone maps for an itemsense instance

public ZoneMap getZoneMapController().createZoneMap(zoneMap) // creates a zone map

public Zone Map getZoneMapController().updateZoneMap(zoneMap) // updates a zone map

public void getZoneMapController().deleteZoneMap(zoneMapName) // deletes a zone map

Current Zone Map

Methods of CoordinatorApiController.getCurrentZoneMapController:

public ZoneMap getCurrentZoneMapController().getCurrentZoneMap(facilityName) // returns the current zonemap for a specific facility

public ZoneMap getCurrentZoneMapController().setCurrentZoneMap(zoneMapName) // updates/sets the current zone map

public void getCurrentZoneMapController().clearCurrentZoneMap(facilityName) // clears the current zone map value

Reader Definitions

For information about reader definitions, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC39

Methods of CoordinatorApiController.getReaderDefinitionController:

public ReaderDefinition getReaderDefinitionController().getReaderDefinition(readerDefinitionName) // returns a reader definition object based on the name

public List<ReaderDefinition> getReaderDefinitionController().getReaderDefinitions() // returns all of the reader definitions for an itemsense instance

public ReaderDefinition getReaderDefinitionController().createReaderDefinition(readerDefinition) // creates a reader definition

public ReaderDefinition getReaderDefinitionController().updaterReaderDefinition(readerDefinition) // updates a reader definition

public void getReaderDefinitionController().deleteReaderDefinition(readerDefinitionName) // deletes a reader definition based on the name

public ReaderFeatureStatus getReaderDefinitionController().configureFeature(readerDefinitionName, featureRequest) // initiate a feature configuration for a reader

public ReaderFeatureStatus getReaderDefinitionController().getFeatureStatus(readerDefinitionName, feature) // returns the current status of the given feature for the reader

public Map<ReaderFeature, ReaderFeatureStatus> getReaderDefinitionController().getActiveFeatureRequests(readerDefinitionName) // returns the current state of active feature configuration requests

Reader Configurations

For information about reader configurations, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC51

Methods of CoordinatorApiController.getReaderConfigurationController:

public ReaderConfiguration getReaderConfigurationController().getReaderConfiguration(readerConfigurationName) // returns a reader configuration object based on the name

public List<ReaderConfiguration> getReaderConfigurationController().getReaderConfigurations() // returns all of the reader configurations for an itemsense instance

public ReaderConfiguration getReaderConfigurationController().createReaderConfiguration(readerConfiguration) // creates a reader configuration

public ReaderConfiguration getReaderConfigurationController().updateReaderConfiguration(readerConfiguration) // updates a reader configuration

public void getReaderConfigurationController().deleteReaderConfiguration(readerConfigurationName) // deletes a reader configuration based on the name

Reader Health

Methods of CoordinatorApiController.getHealthController:

public ReaderStatus getReaderStatus(String readerName)

Recipes

For information about recipes, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC70

Methods of CoordinatorApiController.getRecipeController:

public Recipe getRecipeController().getRecipe(recipeName) // returns a recipe object based on the name

public List<Recipe> getRecipeController().getRecipes() // returns all of the recipes for an itemsense instance

public Recipe getRecipeController().createRecipe(recipe) // creates a recipe

public Recipe getRecipeController().updateRecipe(recipe) // updates a recipe

public void getRecipeController().deleteRecipe(recipeName) // deletes a recipe based on the name

Jobs

For information about jobs, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC76

Methods of CoordinatorApiController.getJobController:

public Job getJobController().getJob(jobId) // returns a job object based on the id

public List<Job> getJobController().getJobs() // returns all of the jobs for an itemsense instance

public Job getJobController().startJob(job) // starts a job

public Job getJobController().stopJob(jobId) // stops a job based on the id

Items

For information about items, visit https://platform.impinj.com/site/developer/itemsense/apidocs/#TOC81

Methods of DataApiController.getDataController:

public List<Item> getItemController.get(queryParams) // Retrieves items from ItemSense. Takes in a map of query Params, but also has multiple overloads

public List<ItemHistory> getItemHistoryController.getHistory(queryParams) // Retrieves item history records from ItemSense. Takes in a map of query Params, but also has multiple overloads

public List<ThresholdTransition> getItemThresholdTransitionController.getThresholdTransition(queryParams) //Retrieve item threshold transition records from ItemSense.  Takes in a map of query Params, but also has multiple overloads

Compatibility Matrix

ItemSense server version itemsense-client version Serialization libraries
2018r2 5.1.0 Jackson 2.9.7
2018r1 5.0.0 Jackson 2.8.2
2017r1 5.0.0 Jackson 2.8.2
2016r6 4.0.0 Jackson 2.8.2
2016r4 2.2 Jackson 2.5.1
2016r3 and previous 2.1.4 and previous Jackson 2.5.1
com.impinj

Impinj

Impinj is a leading provider of RAIN RFID solutions.

Versions

Version
5.1.0
5.0.1
5.0.0
4.0.0
3.0.0
2.4.0
2.2
2.1.4
2.1.3
2.1.2
2.1.1
2.0.1
1.2
1.1
1.0