web:access_rest_api

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
web:access_rest_api [2016/01/29 01:35]
mjallison [Method Breakdown]
web:access_rest_api [2016/02/09 00:25] (current)
mjallison [Responses]
Line 5: Line 5:
  
 ===== Use Cases ===== ===== Use Cases =====
-The Web API (AKA REST) will likely be used in the following use cases: +The Web API (AKA REST) will likely be used in the following use cases, in relative priority order: 
-  * Track viewing operation (AKA TrackManager light)+  * AGTEK Access file client
   * Replacement of V1 access.agtek.com application   * Replacement of V1 access.agtek.com application
      * CRUD of customer admin functions      * CRUD of customer admin functions
Line 12: Line 12:
   * Supporting mass market items (non-licensed)   * Supporting mass market items (non-licensed)
   * Server monitoring functionality.   * Server monitoring functionality.
 +  * Track viewing operation (AKA TrackManager light)
 +
 +Implementation notes:
   * Web applications are running as separate WAR apps, perhaps on different machines.   * Web applications are running as separate WAR apps, perhaps on different machines.
 +     * May need separate instance of REST API for each machine to avoid cross site scripting calls. ​
   * REST API perhaps used for background operations in IOS operations.   * REST API perhaps used for background operations in IOS operations.
 +
 +===== Responses =====
 +If the method succeeds, ack is true. Any error will cause ack to be false, and code set to the StorageException value returned by the server. In most cases the string value err is set to the description provided by the error. ​
 +
 +   { ack: true|false,
 +     code: 0 | code,
 +     err: "error description"​
 +   }
 +
 +Other JSON structures may be returned from a method. In each case the objects returned are wrapped as a GenericResponse. For instance getAllAnnouncements() returns
 +
 +   { ack: true|false
 +     code: 0 | code,
 +     err : "error description"​
 +     [ Announcement* ]
 +   }
 + 
 +Where **Announcement** is:
 +   {
 +      id: integer,
 +      expire: long, (mSec)
 +      text: "​String of announcement"​
 +   ​}  ​
 +  ​
 +Other return objects possible are:
 +**StoredItem**
 +   {
 +      handle ​     : int-value,
 +      name        : string,
 +      description : string,
 +      isFolder ​   : boolean,
 +      size        : long,
 +      children: [ StoredItem* ]
 +   }
 +   
 +**ApplicationState** return from connection/​open or connection/​check
 +   {
 +      userid: string,
 +      token: string,
 +      lastPath: string,
 +      hasAccess: boolean,
 +      hasLicense: boolean,
 +      hasTracks: boolean,
 +      isAdmin: boolean,
 +      isSupport: boolean
 +   }
 +   
 +**AccountInfo**
 +   {
 +      user: string,
 +      userid: string,
 +      totalSpace: long,
 +      usedSpace: long
 +   }
 +   
 +**StorageUser** (minimal needed for admin functions)
 +   {
 +      handle: integer,
 +      customerId: string,
 +      userId: string,
 +      firstName: string,
 +      lastName: string,
 +      phone: string,
 +      role: string
 +   }
 +   
 +**LicenseKey** (minimal needed for admin functions)
 +   {
 +      handle: integer,
 +      type: integer,
 +      number: string,
 +      customerId: string,
 +      maxCheckoutPeriod:​ long,
 +      dueDate: long,
 +      checkoutUser:​ string,
 +      checkoutUserPhone:​ string
 +   }
 +   
 +**Project**
 +   {
 +      handle: integer,
 +      name: string,
 +      description:​ string,
 +      lastTrackTime:​ long,
 +      modifiedTime:​ long,
 +      status: integer,
 +      trackCount: integer
 +   }
 +   
 +**WorkingTime**
 +   {
 +      projectHandle:​ integer,
 +      dayStart: long,
 +      morningStart:​ long,
 +      clipToStart:​ boolean,
 +      morningEnd: long,
 +      clipToMidday:​ boolean,
 +      afternoonStart:​ long,
 +      clipToEnd: boolean,
 +      afternoonEnd:​ long
 +   }
 +   
 +**Track**
 +   {
 +      handle: integer,
 +      trackerAlias:​ string,
 +      trackerSerial:​ string,
 +      projectHandle:​ integer,
 +      discoveryTime:​ long,
 +      startTime: long,
 +      endTime: long,
 +      totalPoints:​ long,
 +      fixType: integer, ​
 +      attributes: object
 +   }
 +   
 +**TrackPoints**
 +   {
 +      count: integer,
 +      [ Point ]
 +   }
 +   
 +**Point**
 +   {
 +      time: long,
 +      lat: double,
 +      lon: double,
 +      alt: double
 +   }
 +   
 +**Tracker**
 +   {
 +      serial: string,
 +      alias: string,
 +      lastLat: double,
 +      lastLon: double,
 +      lastAlt: double,
 +      lastTime: long,
 +      totalPoints:​ integer
 +   }
 +  ​
 +**Telemetry**
 +   {
 +      serial: string,
 +      time: long,
 +      channel: int,
 +      value: numeric | string (depends on channel type)
 +   }
 +   
 +**Vehicle**
 +   {
 +      assetId: string,
 +      type: integer,
 +      status: integer,
 +      description:​ string,
 +      color: integer, (RGBA 32bit value)
 +      avgLoad: double
 +   }
 +
 ===== Method Breakdown ===== ===== Method Breakdown =====
  
-| **Sub-API**   ​| **Method Name** ​            ​| **Return Value** ​ | **Notes** |  +| **API-class (priority)** | **Method Name** ​  ​| **Return Value**  ​| **REST Method** | **params** | **return** ​| **Notes** |  
-| CONNECTION ​   |                             ​| ​                  ​| ​          ​| +| CONNECTION ​(0) |                             ​| ​                  ​| ​| | 
-|               ​| connect() ​                  | StorageServer ​    ​| ​          ​| +|                | connect() ​                  | StorageServer ​    ​| ​GET  | userid,​password,​token | GR |  
-|               ​| authenticate()              |                   ​| ​          ​| +|                | connectResetPassword()      |                   ​| ​GET  ​| userid,​password ​| GR | **still needed** ​| 
-|               ​| authenticateResetPassword() |                   ​| ​          | +|                | disconnect() ​               |                   ​| ​PUT  | | GR |  
-|               ​| disconnect() ​               |                   ​| ​          ​|  +|                | getAnnouncements()          | Announcement* ​    ​| ​GET  | | GR [ Announcement ] | 
-|               ​| getAllAnnouncements()       ​| Announcement* ​    ​| ​          ​|  +| ASSOCIATION ​(4) |                            |                   ​| ​| | 
-| ASSOCIATION ​  ​|                             ​|                   ​| ​          ​| +|                | getAssociations() ​          | Association* ​     | GET  | | 
-|               ​| getAssociations() ​          | Association* ​     |           ​| +|                | addAssociation() ​           | Association ​      ​| ​PUT  | | 
-|               ​| addAssociation() ​           | Association ​      ​| ​          ​| +|                | updateAssociation() ​        | Association ​      ​| ​PUT  | | 
-|               ​| updateAssociation() ​        | Association ​      ​| ​          ​| +|                | deleteAssociation() ​        | Association ​      ​| ​PUT  | | 
-|               ​| deleteAssociation() ​        | Association ​      ​| ​          ​|  +| CONFIGURATION ​(4) |                          |                   ​| ​| | 
-| CONFIGURATION |                             ​|                   ​| ​          ​|  +|                | getAllConfigurations() ​     | Configuration* ​   | GET  | | 
-|               ​| getAllConfigurations() ​     | Configuration* ​   |           ​|  +|                | getConfiguration() ​         | Configuration ​    ​| ​GET  | | 
-|               ​| getConfiguration() ​         | Configuration ​    ​| ​          ​|  +|                | updateConfiguration() ​      | Configuration ​    ​| ​PUT  | | 
-|               ​| updateConfiguration() ​      | Configuration ​    ​| ​          ​|  +|                | getConfigurationData() ​     | ConfigurationData | POST | | 
-|               ​| getConfigurationData() ​     | ConfigurationData |           ​| +|                | setConfigurationData() ​     | void              | POST | | 
-|               ​| setConfigurationData() ​     | void              |           ​|  +| FILEAPI ​(1)    ​|                             ​| ​                  | | | 
-| FILEAPI ​      ​|                             ​| ​                  | | +|                | createFolder() ​             | StoredFolder ​     | GET  | path | GR { stedFolder } | 
-|               ​| createFolder() ​             | StoredFolder ​     | |  +|                | createPublicUrl() ​          | String url        | GET  | path | GR { url } | 
-|               ​| createPublicUrl() ​          | String url        | |  +|                | deleteFile() ​               | void              | PUT  | path | GR | 
-|               ​| deleteFile() ​               | void              | |  +|                | deletePublicUrl() ​          | void              | PUT  | path | GR | 
-|               ​| deletePublicUrl() ​          | void              | |  +|                | downloadFile() ​             |                   | GET  | path | | to file... tbd | 
-|               ​| downloadFile() ​             |                   | to file... tbd | +|                | downloadVersion() ​          ​| ​                  | GET  | path | | to file... tbd |  
-|               ​| downloadVersion() ​          ​| ​                  | to file... tbd |  +|                | getAccountInfo() ​           |                   ​| ​GET  | | GR { AccountInfo } | 
-|               ​| getAccountInfo() ​           |                   ​| ​               | +|                | getFolder() ​                | StoredFolder ​     ​| GET  | ??? | 
-|               ​| getFolder() ​                | StoredFolder ​     | +|                | getVersions() ​              | StoredFile+ ​      | GET  | | 
-|               ​| getVersions() ​              | StoredFile+ ​      | +|                | getStoredFile() ​            | StoredFile ​       ​| GET  ​| | 
-|               ​| getStoredFile() ​            | StoredFile ​       | | +|                | moveFile() ​                 | void              | PUT  | path, dstpath | GR |  
-|               ​| moveFile() ​                 | void              | | +|                | renameFile() ​               | void              | PUT  | path, newname | GR |  
-|               ​| renameFile() ​               | void              | |  +|                | renameFolder() ​             | void              | PUT  | path, newname | GR | 
-|               ​| renameFolder() ​             | void              | |  +|                | setDescription()            | void              | PUT  | path, description ​| 
-|               ​| setDescriptio()             ​| void              | | +|                | uploadFolder() ​             | StoredFolder ​     | POST | ??? | 
-|               ​| uploadFolder() ​             | StoredFolder ​     | | +|                | uploadFile() ​               | StoredFile ​       | POST | ??? | 
-| PROJECTS ​     |                             ​| ​                  | | +| PROJECTS ​(2)   |                             ​| ​                  | | | 
-|               ​| addProject() ​               | Project ​          | | +|                | addProject() ​               | Project ​          | PUT  ​| | 
-|               ​| updateProject() ​            | Project ​          | |  +|                | updateProject() ​            | Project ​          | PUT  ​| | 
-|               ​| getProjects() ​              | Project* ​         | | +|                | getProjects() ​              | Project* ​         ​| PUT  ​| | 
-|               ​| deleteProject() ​            | void              | | +|                | deleteProject() ​            | void              ​| PUT  ​| | 
-|               ​| archiveProject() ​           | StoredFile ​       | |  +|                | archiveProject() ​           | StoredFile ​       ​| POST | | 
-|               ​| restoreProject() ​           | Project ​          | |  +|                | restoreProject() ​           | Project ​          | POST | | 
-|               ​| getWorkingTime() ​           | WorkingTime ​      | |  +|                | getWorkingTime() ​           | WorkingTime ​      ​| ​GET  | | | for a day | 
-|               ​| getWorkingTime() ​           | WorkingTime* ​     | |  +|                | getWorkingTime() ​           | WorkingTime* ​     | GET  | | | for a range of times | 
-|               ​| updatingWorkingTime() ​      | WorkingTime ​      | |  +|                | updatingWorkingTime() ​      | WorkingTime ​      | PUT  ​| | 
-|               ​| deleteWorkingTime() ​        | void              | | +|                | deleteWorkingTime() ​        | void              ​| PUT  ​| | 
-| REPORTS ​      ​|                             ​| ​                  | | +| REPORTS ​(3)    ​|                             ​| ​                  | | | 
-|               ​| getReportFormats() ​         | String+ ​          | |  +|                | getReportFormats() ​         | String+ ​          | GET  ​| | 
-|               ​| getReports() ​               | String+ ​          | | +|                | getReports() ​               | String+ ​          | GET  ​| | 
-|               ​| runReport() ​                | void              | |  +|                | runReport() ​                | void              ​| POST | | 
-|               ​| getActiveProducts() ​        | String+ ​          | | +|                | getActiveProducts() ​        | String+ ​          | GET  ​| | 
-| ADMIN         ​|                             ​| ​                  | All are customer admin functions as defined in current API | +| ADMIN  ​(3) ​    |                             ​| ​                  | | | | All are customer admin functions as defined in current API | 
-|               ​| getUsers() ​                 | StorageUser* ​     | | +|                | getUsers() ​                 | StorageUser* ​     ​| GET  ​| | 
-|               ​| addUser() ​                  | StorageUser ​      | |  +|                | addUser() ​                  | StorageUser ​      | PUT  ​| | 
-|               ​| deleteUser() ​               | boolean ​          | |  +|                | deleteUser() ​               | boolean ​          | PUT  ​| |  
-|               ​| updateUser() ​               | StorageUser ​      | |  +|                | updateUser() ​               | StorageUser ​      | PUT  ​| | 
-|               ​| getAllLicenses() ​           | LicenseKey* ​      | | +|                | getAllLicenses() ​           | LicenseKey* ​      | GET  ​| | 
-|               ​| removeLicenseUser() ​        | void              | | +|                | removeLicenseUser() ​        | void              ​| PUT  ​| | 
-|               ​| addLicenseUser() ​           | void              | | +|                | addLicenseUser() ​           | void              ​| PUT  ​| | 
-|               ​| updateLicenseCheckoutTime() | LicenseKey ​       | |  +|                | updateLicenseCheckoutTime() | LicenseKey ​       ​| PUT  ​| | 
-|               ​| getLicenseLog() ​            ​| ​                  ​| ​|   +|                | getLicenseLog() ​            ​| ​                  ​| ​GET  | | 
-| LICENSE ​      ​|                             ​| ​                  ​| ​Not supported in V1 | +| LICENSE ​ ​(5) ​  |                             ​| ​                  ​| ​| | | Needed for web apps at all? | 
-|               ​| getLicenses() ​              | LicenseKey* ​      | | +|                | getLicenses() ​              | LicenseKey* ​      | GET  ​| | 
-|               ​| checkoutLicense() ​          | LicenseKey ​       | |  +|                | checkoutLicense() ​          | LicenseKey ​       ​| PUT  ​| | 
-|               ​| checkinLicense() ​           | LicenseKey ​       | |  +|                | checkinLicense() ​           | LicenseKey ​       ​| PUT  ​| | 
-|               ​| renewLicense() ​             | LicenseKey ​       | | +|                | renewLicense() ​             | LicenseKey ​       ​| PUT  ​| | 
-|               ​| submitLicenseComment() ​     | void              | |  +|                | submitLicenseComment() ​     | void              ​| PUT  ​| | 
-| SUPPORT ​      ​|                             ​| ​                  | Limited to viewing only operations |  +| SUPPORT ​ ​(5) ​  |                             ​| ​                  | | | | Limited to viewing only operations |  
-|               ​| getConfig() ​                | Config ​           | |  +|                | getConfig() ​                | Config ​           ​| GET  ​| | 
-|               ​| getCustomers() ​             | StorageCustomer* ​ | |  +|                | getCustomers() ​             | StorageCustomer* ​ | GET  | | 
-|               ​| getCustomerByLicense() ​     | StorageCustomer ​  | |  +|                | getCustomerByLicense() ​     | StorageCustomer ​  | GET  ​| | 
-|               ​| getCustomerByUser() ​        | StorageCustomer ​  | | +|                | getCustomerByUser() ​        | StorageCustomer ​  | GET  ​| | 
-|               ​| getUsers() ​                 | StorageUser ​      | | +|                | getUsers() ​                 | StorageUser ​      | GET  ​| | 
-|               ​| findUsersByPattern() ​       | StorageUser ​      | | +|                | findUsersByPattern() ​       | StorageUser ​      | GET  ​| | 
-|               ​| runReport() ​                ​| ​                  | |  +|                | runReport() ​                ​| ​                  | POST | | 
-|               ​| <​del>​addCustomerUser()</​del> ​          ​| StorageUser ​      | |  +|                | <​del>​addCustomerUser()</​del> ​   | StorageUser ​      | | | 
-|               ​| <​del>​addAnnouncement() </​del> ​         | Announcement ​     | |  +|                | <​del>​addAnnouncement() </​del> ​  ​| Announcement ​     ​| | | 
-|               ​| <​del>​deleteAnnouncement()</​del> ​       | void              | |  +|                | <​del>​deleteAnnouncement()</​del>​ | void              ​| | | 
-|               ​| <​del>​getLicenses(cust) </​del> ​         | LicenseKey* ​      | | +|                | <​del>​getLicenses(cust) </​del> ​  ​| LicenseKey* ​      | | | 
-|               ​| <​del>​createLicense() </​del> ​           | LicenseKey ​       | |  +|                | <​del>​createLicense() </​del> ​    ​| LicenseKey ​       ​| | | 
-|               ​| <​del>​updateLicense() </​del> ​           | LicenseKey ​       | |  +|                | <​del>​updateLicense() </​del> ​    ​| LicenseKey ​       ​| | | 
-|               ​| <​del>​convertDCLLicense()</​del> ​        ​| LicenseKey ​       | |  +|                | <​del>​convertDCLLicense()</​del> ​ | LicenseKey ​       ​| | | 
-|               ​| <​del>​transferLicense()</​del> ​          ​| LicenseKey ​       | | +|                | <​del>​transferLicense()</​del> ​   | LicenseKey ​       ​| | | 
-|               ​| <​del>​unlockLicense() </​del> ​           | LicenseKey ​       | | +|                | <​del>​unlockLicense() </​del> ​    ​| LicenseKey ​       ​| | | 
-|               ​| <​del>​addCustomer()</​del> ​              ​| StorageCustomer ​  | | +|                | <​del>​addCustomer()</​del> ​       | StorageCustomer ​  | | | 
-|               ​| <​del>​updateCustomer()</​del> ​           | void              | | +|                | <​del>​updateCustomer()</​del> ​    ​| void              ​| | | 
-|               ​| <​del>​getEvents()</​del> ​                ​| String* ​          | Server event list | +|                | <​del>​getEvents()</​del> ​         | String* ​          | | | | Server event list | 
-|               ​| <​del>​getApps() </​del> ​                 | Application ​      | | +|                | <​del>​getApps() </​del> ​          ​| Application ​      | | | 
-|               ​| <​del>​updateApp() </​del> ​               |                   | | +|                | <​del>​updateApp() </​del> ​        ​|                   | | | 
-| TRACKING ​     |                             ​| ​                  | Plus traditional POSITION API |  +| TRACKING ​(4)   |                             ​| ​                  | | | | Plus traditional POSITION API |  
-|               ​| getSerialNumbers() ​         | String* ​          | +|                | getSerialNumbers() ​         | String* ​          | GET  | | 
-|               ​| updateGpsStats() ​           | GpsStat ​          |  +|                | updateGpsStats() ​           | GpsStat ​          | PUT  | |  
-|               ​| updateGpsStats() ​           | GpsStat ​          | inp telemetry, needed in web? | +|                | updateGpsStats() ​           | GpsStat ​          | PUT  | | | inp telemetry, needed in web? | 
-|               ​| getGpsStats() ​              | GpsStat+ ​         | | +|                | getGpsStats() ​              | GpsStat+ ​         ​| GET  ​| |  
-|               ​| getGpsTelemetry() ​          | GpsTelemetry ​     | |  +|                | getGpsTelemetry() ​          | GpsTelemetry ​     ​| GET  ​| | 
-|               ​| getTracks() ​                | Track* ​           | |  +|                | getTracks() ​                | Track* ​           ​| GET  ​| | 
-|               ​| getTrack() ​                 | Track             | |  +|                | getTrack() ​                 | Track             | GET  ​| | 
-|               ​| deleteTrack() ​              | void              | | +|                | deleteTrack() ​              | void              ​| PUT  ​| | 
-|               ​| moveTrack() ​                | Track             | | +|                | moveTrack() ​                | Track             | PUT  ​| |  
-|               ​| combineTrack() ​             | Track             | |  +|                | combineTrack() ​             | Track             | PUT  ​| |  
-|               ​| updateTrack() ​              | void              | |  +|                | updateTrack() ​              | void              ​| PUT  ​| | 
-|               ​| getTrackStats() ​            | TrackStats ​       | | +|                | getTrackStats() ​            | TrackStats ​       ​| GET  ​| |  
-|               ​| getTrackSummaryStats() ​     | TrackStats ​       | |  +|                | getTrackSummaryStats() ​     | TrackStats ​       ​| GET  ​| |  
-|               ​| updateTrackStats() ​         | TrackStats ​       | |  +|                | updateTrackStats() ​         | TrackStats ​       ​| PUT  ​| |  
-| VEHICLES ​     |                             ​| ​                  | +| VEHICLES ​(4)   |                             ​| ​                  | | | 
-|               ​| getVehicles() ​              | Vehicle* ​         | +|                | getVehicles() ​              | Vehicle* ​         ​| GET  | | 
-|               ​| addVehicle() ​               | Vehicle ​          | +|                | addVehicle() ​               | Vehicle ​          | PUT  | | 
-|               ​| updateVehicle() ​            | Vehicle ​          |  +|                | updateVehicle() ​            | Vehicle ​          | PUT  | | 
-|               ​| deleteVehicle() ​            | Vehicle ​          |+|                | deleteVehicle() ​            | Vehicle ​          | PUT  | |
  
web/access_rest_api.1454031355.txt.gz · Last modified: 2016/01/29 01:35 by mjallison