This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| web:access_rest_api [2016/01/29 01:55] mjallison [Use Cases] | web:access_rest_api [2016/02/09 00:25] (current) mjallison [Responses] | ||
|---|---|---|---|
| Line 18: | Line 18: | ||
| * May need separate instance of REST API for each machine to avoid cross site scripting calls.  | * 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 | | |