This document provides documentation for the TrackAbout API, including instructions for getting started, API concepts, request formats, authentication methods, and sample requests. It describes how to set up a test environment and API key, the required use of HTTPS and a user agent header. It also covers REST concepts, available formats, basic data types, and ways to authenticate including basic authentication using username and password or token authentication. Standard response patterns and identifiers are also defined.
The document discusses various Salesforce APIs including REST API, SOAP API, Bulk API, and Streaming API. It provides details on when to use each API and how to make calls to external APIs from Apex. REST API is recommended for most use cases due to its simplicity. Named credentials can be used to streamline authentication for external API calls from Apex.
Arcadian Learning a Team of 50 Year industrial Expertise provide professional Training in Java Development. Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise level Web Applications and Web Services - on any kind of deployment platform.
The document discusses RESTful web services and Resource Oriented Architecture (ROA). It defines REST and its constraints including client-server architecture, statelessness, cacheability, uniform interface and layered system. It then explains ROA and how resources are addressed and represented in a RESTful system. Key concepts like addressability, statelessness, representations, links and connectedness, uniform interface and safety are covered in relation to ROA. The document provides examples and discusses designing a RESTful API for a content management system.
This presentation gives a high level concepts and more of code to take a stab at developing a simple Restful server. I targeted people who would like to build a simple RESTFul server from scratch and experiment.
ReST (Representational State Transfer) ExplainedDhananjay Nene
The document provides an overview of Representational State Transfer (REST), which is an architectural style for building distributed systems. It describes REST as a set of constraints or rules for designing web services, rather than a standard or framework. The key constraints outlined in the document include using a client-server model, being stateless, cacheable responses, a uniform interface, layered system, and code on demand. The document focuses on explaining the uniform interface constraint and its requirements around resource identification, manipulation through representations, self-descriptive messages, and hypermedia as the engine of application state.
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
Representational State Transfer (REST) and HATEOASGuy K. Kloss
This document outlines Representational State Transfer (REST) and HATEOAS (Hypermedia as the Engine of Application State). It discusses the principles of REST including identification of resources, manipulation of resources through HTTP methods, self-descriptive messages, and HATEOAS. An example scenario of a flight booking API is provided to illustrate how HATEOAS links indicate state transitions within a REST API.
A Deep Dive into RESTful API Design Part 2VivekKrishna34
RESTful API Design, RESTful URI Design, Design Steps, Example Application, What are resources in REST? Various HTTP Status codes used in REST, POST, GET, PUT, PATCH, DELETE methods and what are they used for?
The document discusses various Salesforce APIs including REST API, SOAP API, Bulk API, and Streaming API. It provides details on when to use each API and how to make calls to external APIs from Apex. REST API is recommended for most use cases due to its simplicity. Named credentials can be used to streamline authentication for external API calls from Apex.
Arcadian Learning a Team of 50 Year industrial Expertise provide professional Training in Java Development. Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise level Web Applications and Web Services - on any kind of deployment platform.
The document discusses RESTful web services and Resource Oriented Architecture (ROA). It defines REST and its constraints including client-server architecture, statelessness, cacheability, uniform interface and layered system. It then explains ROA and how resources are addressed and represented in a RESTful system. Key concepts like addressability, statelessness, representations, links and connectedness, uniform interface and safety are covered in relation to ROA. The document provides examples and discusses designing a RESTful API for a content management system.
This presentation gives a high level concepts and more of code to take a stab at developing a simple Restful server. I targeted people who would like to build a simple RESTFul server from scratch and experiment.
ReST (Representational State Transfer) ExplainedDhananjay Nene
The document provides an overview of Representational State Transfer (REST), which is an architectural style for building distributed systems. It describes REST as a set of constraints or rules for designing web services, rather than a standard or framework. The key constraints outlined in the document include using a client-server model, being stateless, cacheable responses, a uniform interface, layered system, and code on demand. The document focuses on explaining the uniform interface constraint and its requirements around resource identification, manipulation through representations, self-descriptive messages, and hypermedia as the engine of application state.
This is a presentation which describe the big picture of the Rest API. In this presentation I simply describe the theories with practical examples. Hope this presentation will cover the overall Rest API domain.
Representational State Transfer (REST) and HATEOASGuy K. Kloss
This document outlines Representational State Transfer (REST) and HATEOAS (Hypermedia as the Engine of Application State). It discusses the principles of REST including identification of resources, manipulation of resources through HTTP methods, self-descriptive messages, and HATEOAS. An example scenario of a flight booking API is provided to illustrate how HATEOAS links indicate state transitions within a REST API.
A Deep Dive into RESTful API Design Part 2VivekKrishna34
RESTful API Design, RESTful URI Design, Design Steps, Example Application, What are resources in REST? Various HTTP Status codes used in REST, POST, GET, PUT, PATCH, DELETE methods and what are they used for?
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
This document provides an overview and primer on REST (REpresentational State Transfer) architectural style for building web services. It discusses key REST concepts like resources identified by URIs, use of standard HTTP methods like GET, PUT, POST, DELETE, stateless communication, and representation of resources in different formats like XML and JSON. It also describes how the JAX-RS API in Java maps to these REST concepts through annotations and allows building RESTful web services and APIs in a declarative way.
This slide show is from my presentation on what JSON and REST are. It aims to provide a number of talking points by comparing apples and oranges (JSON vs. XML and REST vs. web services).
The document provides guidance on best practices for API design, including supporting platform independence and service evolution. It describes design principles for RESTful APIs using HTTP, including organizing APIs around resources identified by URIs, using HTTP methods to define operations on resources, and exchanging representations of resources using media types. The document also discusses using hypermedia links, asynchronous operations, versioning APIs, and other design considerations.
Overview of REST web service concepts (Representational State Transfer).
REST is a radically different approach for web services compared to the combo SOAP/WSDL.
REST defines an architectural style for web applications and web services.
REST makes heavy use of the underlying HTTP protocol.
REST itself is not a protocol but defines architectural principles based on the concept of addressable resources and a uniform access to these resources based on the well-known HTTP-methods GET, POST, PUT and DELETE.
The state of a client (web service consumer) is controlled by the REST web service through connected links between resources (resource oriented architecture). The client state however is stored on the client itself thus greatly increasing scalability of REST-based architectures.
The REST paradigm has mostly superseded SOAP / WSDL type web services in many enterprise applications. This is largely owed to the fact that the underlying HTTP protocol is well understood and proved its scalability in the WWW.
This document provides a tutorial on using the Simple Object Access Protocol (SOAP) for communication between components. It introduces an example component, an HTML calendar widget, that can receive event listings and display a calendar of events. The tutorial defines an interface for the calendar widget using CORBA IDL and then demonstrates making a request to add an event listing using a SOAP HTTP request with an XML payload wrapped in a SOAP envelope and body. The SOAP request follows the defined interface by specifying the date and event description in the payload to add a new listing to the calendar widget.
How to design a good REST API: Tools, techniques and best practicesWSO2
The document provides guidelines for designing a good REST API, including following steps like defining a data model and resource model, using proper resource URIs and naming conventions, supporting versioning and pagination, and ensuring security. It also discusses specification formats, tools, and designing asynchronous/event-driven APIs.
This presentation lays out the concept of the traditional web, the improvements web 2.0 have brought about, etc.
I have attempted to explain RIA as well.
The main part of this presentation is centered around ajax, its uses, advantages / disadvantages, framework considerations when using ajax, java-script hijacking, etc.
Hopefully it should be a good read as an intro doc to RIA and Ajax.
A Conversation About REST - Extended VersionJeremy Brown
The document discusses APIs and different types of API architectures. It explains that an API allows software programs to access resources and services of another program. Common API types include XML-RPC, SOAP, and JSON-RPC which focus on calling methods, while REST is resource-oriented. REST uses four guiding principles - identifying resources with URIs, manipulating resources through standard actions like GET and PUT, self-descriptive messages, and hypermedia as the application state. The document provides examples of requests and responses for each API type and discusses REST concepts like versioning resources through URI syntax or HTTP headers.
This document discusses content negotiation in ASP.NET Web API 2. It explains what content negotiation is, why it is important, and how to implement it in Web API. Content negotiation allows a client to specify the desired response format using request headers like Accept and Content-Type. Web API uses formatters to serialize the response into the requested format. The document provides examples of configuring formatters to support different media types and customize the JSON output. It also describes how the content negotiation pipeline in Web API works to select the appropriate formatter based on the request headers.
Representational State Transfer (REST) is an architectural style for distributed hypermedia systems like the World Wide Web. The key goals of REST include scalability, generality of interfaces, independent deployment of components, and use of intermediary components. REST uses a stateless, client-server architecture and relies on standard HTTP methods like GET, POST, PUT, and DELETE to allow clients to access and modify resources identified by URIs. Resources are representations that can be acted on and transferred between components. [END SUMMARY]
The document discusses REST (REpresentational State Transfer), an architectural style for building distributed systems. It covers REST concepts like resources, representations, URIs, HTTP methods, caching, and versioning. It provides guidance on designing RESTful APIs, including determining resources, supported methods, and return codes. Content negotiation and tools for testing REST APIs are also mentioned.
The document provides an overview of the REST (Representational State Transfer) architectural style. It defines REST, describes its constraints including client-server architecture, stateless, cacheable, uniform interface, and layered system. It also gives examples of how to design a RESTful web API, including defining resources and their representations, using HTTP methods and status codes, and considerations for caching, encodings and security.
This is a presentation inspired (heavily) by that of Joshu Bloch's presentation on "How to design a good API and its importance". I tried to simplify on API importance and tried to generify how to conceive it. No point referring to that presentation explicitly as I am mentioning it here and mentioned it at the start and end of the presentation as I made it in BASIS SoftExpo 2012
How to call REST API without knowing any programming languages Marc Leinbach
In this Slide Share you will learn how to call REST API using SSIS Web Service Task , JSON Source Connector or XML Source Connector. You will also learn how to perform HTTP GET Request and HTTP POST Request without knowing any programming languages (e.g. C#, JAVA, Python)… simply do Drag and Drop in SSIS.
The document discusses REST (Representational State Transfer) architectural styles and best practices for designing web services. It covers topics like RESTful principles of using URIs and HTTP methods to manipulate resources, statelessness, hypermedia as the engine of application state, and JSON and XML media types for representing resources. It also discusses REST maturity levels, security, versioning, and error handling in RESTful web services.
JAX-RS. Developing RESTful APIs with JavaJerry Kurian
The presentation discusses the basic REST principles and how to define a RESTful API.
The presentation then looks at the various facilities provided by JAX-RS for developing REST API using Java.
All the supported annotations and its usage are discussed with example
Roy Fielding introduced the concept of RESTful APIs in 2000. REST has since become a dominant framework for sending requests from clients to servers to interact with and receive data in a format clients can use. A RESTful API uses well-established HTTP methods like GET, POST, PUT, and DELETE to allow standardized communication and efficient use of network resources. REST defines how clients and servers exchange information about resources through standardized requests and responses.
The document discusses demystifying APIs. It begins with an introduction to APIs, including their evolution and benefits. It then discusses RESTful APIs and their key aspects like uniform interface and use of HTTP methods. The document outlines best practices for API design, development, and challenges. It provides examples of designing APIs using Node.js and Hapi.js and discusses challenges like security, authentication, rate limiting, and scalability. Tools mentioned include Express, Swagger, Postman, and Kong.
A RESTful API is only truly RESTful if it uses hypermedia to tell us about all the actions that can be performed on the curent resource, allowing us to traverse the API from a single entry point.
His session looks at REST and HATEOAS (Hypermedia As The Engine Of Application State) to illustrate good service structure. Ben will use the RESTful file sharing service fdrop.it to illustrate the various examples of how this can be used.
This session is recommended for architects and senior developers alike and will give a good grounding in writing excellent, self-explanatory RESTful services.
Modern REST API design principles and rules.pdfAparna Sharma
Typically, when updating or developing an API like Newsdata.io which is a news API for a service to provide news data with quick response time, there are lengthy discussions about the API’s structure, naming, and functions. Although, over time, certain rules have emerged that can be applied to the process and aid in reaching a common ground while developing.
API stands for Application Programming Interface. APIs allow communication between applications or services by providing a set of functions and procedures. API testing involves testing APIs and their integration with services to ensure correct functionality, reliability, performance, and security. Postman is a popular tool for API development that allows users to design, build, test, and document APIs through a graphical user interface.
Simple REST-API overview for developers. An newer version is here: https://www.slideshare.net/patricksavalle/super-simple-introduction-to-restapis-2nd-version-127968966
This document provides an overview and primer on REST (REpresentational State Transfer) architectural style for building web services. It discusses key REST concepts like resources identified by URIs, use of standard HTTP methods like GET, PUT, POST, DELETE, stateless communication, and representation of resources in different formats like XML and JSON. It also describes how the JAX-RS API in Java maps to these REST concepts through annotations and allows building RESTful web services and APIs in a declarative way.
This slide show is from my presentation on what JSON and REST are. It aims to provide a number of talking points by comparing apples and oranges (JSON vs. XML and REST vs. web services).
The document provides guidance on best practices for API design, including supporting platform independence and service evolution. It describes design principles for RESTful APIs using HTTP, including organizing APIs around resources identified by URIs, using HTTP methods to define operations on resources, and exchanging representations of resources using media types. The document also discusses using hypermedia links, asynchronous operations, versioning APIs, and other design considerations.
Overview of REST web service concepts (Representational State Transfer).
REST is a radically different approach for web services compared to the combo SOAP/WSDL.
REST defines an architectural style for web applications and web services.
REST makes heavy use of the underlying HTTP protocol.
REST itself is not a protocol but defines architectural principles based on the concept of addressable resources and a uniform access to these resources based on the well-known HTTP-methods GET, POST, PUT and DELETE.
The state of a client (web service consumer) is controlled by the REST web service through connected links between resources (resource oriented architecture). The client state however is stored on the client itself thus greatly increasing scalability of REST-based architectures.
The REST paradigm has mostly superseded SOAP / WSDL type web services in many enterprise applications. This is largely owed to the fact that the underlying HTTP protocol is well understood and proved its scalability in the WWW.
This document provides a tutorial on using the Simple Object Access Protocol (SOAP) for communication between components. It introduces an example component, an HTML calendar widget, that can receive event listings and display a calendar of events. The tutorial defines an interface for the calendar widget using CORBA IDL and then demonstrates making a request to add an event listing using a SOAP HTTP request with an XML payload wrapped in a SOAP envelope and body. The SOAP request follows the defined interface by specifying the date and event description in the payload to add a new listing to the calendar widget.
How to design a good REST API: Tools, techniques and best practicesWSO2
The document provides guidelines for designing a good REST API, including following steps like defining a data model and resource model, using proper resource URIs and naming conventions, supporting versioning and pagination, and ensuring security. It also discusses specification formats, tools, and designing asynchronous/event-driven APIs.
This presentation lays out the concept of the traditional web, the improvements web 2.0 have brought about, etc.
I have attempted to explain RIA as well.
The main part of this presentation is centered around ajax, its uses, advantages / disadvantages, framework considerations when using ajax, java-script hijacking, etc.
Hopefully it should be a good read as an intro doc to RIA and Ajax.
A Conversation About REST - Extended VersionJeremy Brown
The document discusses APIs and different types of API architectures. It explains that an API allows software programs to access resources and services of another program. Common API types include XML-RPC, SOAP, and JSON-RPC which focus on calling methods, while REST is resource-oriented. REST uses four guiding principles - identifying resources with URIs, manipulating resources through standard actions like GET and PUT, self-descriptive messages, and hypermedia as the application state. The document provides examples of requests and responses for each API type and discusses REST concepts like versioning resources through URI syntax or HTTP headers.
This document discusses content negotiation in ASP.NET Web API 2. It explains what content negotiation is, why it is important, and how to implement it in Web API. Content negotiation allows a client to specify the desired response format using request headers like Accept and Content-Type. Web API uses formatters to serialize the response into the requested format. The document provides examples of configuring formatters to support different media types and customize the JSON output. It also describes how the content negotiation pipeline in Web API works to select the appropriate formatter based on the request headers.
Representational State Transfer (REST) is an architectural style for distributed hypermedia systems like the World Wide Web. The key goals of REST include scalability, generality of interfaces, independent deployment of components, and use of intermediary components. REST uses a stateless, client-server architecture and relies on standard HTTP methods like GET, POST, PUT, and DELETE to allow clients to access and modify resources identified by URIs. Resources are representations that can be acted on and transferred between components. [END SUMMARY]
The document discusses REST (REpresentational State Transfer), an architectural style for building distributed systems. It covers REST concepts like resources, representations, URIs, HTTP methods, caching, and versioning. It provides guidance on designing RESTful APIs, including determining resources, supported methods, and return codes. Content negotiation and tools for testing REST APIs are also mentioned.
The document provides an overview of the REST (Representational State Transfer) architectural style. It defines REST, describes its constraints including client-server architecture, stateless, cacheable, uniform interface, and layered system. It also gives examples of how to design a RESTful web API, including defining resources and their representations, using HTTP methods and status codes, and considerations for caching, encodings and security.
This is a presentation inspired (heavily) by that of Joshu Bloch's presentation on "How to design a good API and its importance". I tried to simplify on API importance and tried to generify how to conceive it. No point referring to that presentation explicitly as I am mentioning it here and mentioned it at the start and end of the presentation as I made it in BASIS SoftExpo 2012
How to call REST API without knowing any programming languages Marc Leinbach
In this Slide Share you will learn how to call REST API using SSIS Web Service Task , JSON Source Connector or XML Source Connector. You will also learn how to perform HTTP GET Request and HTTP POST Request without knowing any programming languages (e.g. C#, JAVA, Python)… simply do Drag and Drop in SSIS.
The document discusses REST (Representational State Transfer) architectural styles and best practices for designing web services. It covers topics like RESTful principles of using URIs and HTTP methods to manipulate resources, statelessness, hypermedia as the engine of application state, and JSON and XML media types for representing resources. It also discusses REST maturity levels, security, versioning, and error handling in RESTful web services.
JAX-RS. Developing RESTful APIs with JavaJerry Kurian
The presentation discusses the basic REST principles and how to define a RESTful API.
The presentation then looks at the various facilities provided by JAX-RS for developing REST API using Java.
All the supported annotations and its usage are discussed with example
Roy Fielding introduced the concept of RESTful APIs in 2000. REST has since become a dominant framework for sending requests from clients to servers to interact with and receive data in a format clients can use. A RESTful API uses well-established HTTP methods like GET, POST, PUT, and DELETE to allow standardized communication and efficient use of network resources. REST defines how clients and servers exchange information about resources through standardized requests and responses.
The document discusses demystifying APIs. It begins with an introduction to APIs, including their evolution and benefits. It then discusses RESTful APIs and their key aspects like uniform interface and use of HTTP methods. The document outlines best practices for API design, development, and challenges. It provides examples of designing APIs using Node.js and Hapi.js and discusses challenges like security, authentication, rate limiting, and scalability. Tools mentioned include Express, Swagger, Postman, and Kong.
A RESTful API is only truly RESTful if it uses hypermedia to tell us about all the actions that can be performed on the curent resource, allowing us to traverse the API from a single entry point.
His session looks at REST and HATEOAS (Hypermedia As The Engine Of Application State) to illustrate good service structure. Ben will use the RESTful file sharing service fdrop.it to illustrate the various examples of how this can be used.
This session is recommended for architects and senior developers alike and will give a good grounding in writing excellent, self-explanatory RESTful services.
Modern REST API design principles and rules.pdfAparna Sharma
Typically, when updating or developing an API like Newsdata.io which is a news API for a service to provide news data with quick response time, there are lengthy discussions about the API’s structure, naming, and functions. Although, over time, certain rules have emerged that can be applied to the process and aid in reaching a common ground while developing.
API stands for Application Programming Interface. APIs allow communication between applications or services by providing a set of functions and procedures. API testing involves testing APIs and their integration with services to ensure correct functionality, reliability, performance, and security. Postman is a popular tool for API development that allows users to design, build, test, and document APIs through a graphical user interface.
Lunacloud's Compute RESTful API - Programmer's GuideLunacloud
This document provides a programmer's guide to accessing Lunacloud's compute resources via a RESTful API. It describes how to perform operations like obtaining server lists, starting/stopping servers, creating/deleting servers, managing firewall rules and images, and more. The guide covers RESTful API basics, HTTP methods, data formats, and provides a reference of specific API calls organized by resource type and operation. Code samples and instructions for testing requests are also included.
Modern REST API design principles and rules.pdfAparna Sharma
Typically, when updating or developing an API like Newsdata.io which is a news API for a service to provide news data with quick response time, there are lengthy discussions about the API’s structure, naming, and functions. Although, over time, certain rules have emerged that can be applied to the process and aid in reaching a common ground while developing.
Basics of API Design and development. After the presentation, we developed a python flask-based app that you use to remind yourself anything via an api https://github.com/oquidave/reminderme
API Basics discusses software defined networking (SDN) and REST APIs. SDN separates the control plane and data plane in network devices to allow remote configuration. REST APIs use HTTP to enable communication between applications through requests and responses that include resources, parameters, headers and payloads in JSON or XML format. The document provides examples of REST API components like endpoints, verbs, parameters and data formats to help understand how to work with REST APIs.
MuleSoft Surat Virtual Meetup#21 - MuleSoft API and RAML Design Best Practice...Jitendra Bafna
The document discusses API and RAML design best practices and guidelines that were presented at a MuleSoft meetup. It covers REST API design best practices like using nouns in URIs, HTTP verbs to define actions, versioning APIs, and status codes. It also discusses RAML design best practices like using plural nouns, sub-resources to represent relations, and URI structure. The agenda includes talks on these topics and a networking session.
The document discusses the Slim microframework for PHP. It provides an overview of Slim, describing how it is used to quickly write REST APIs. It covers installing Slim, using the Application class as the entry point, and handling requests and responses. Key aspects covered include registering routes, accessing request headers and body, setting response status and headers, and returning JSON responses.
This document provides an introduction and overview of REST APIs. It defines REST as an architectural style based on web standards like HTTP that defines resources that are accessed via common operations like GET, PUT, POST, and DELETE. It outlines best practices for REST API design, including using nouns in URIs, plural resource names, GET for retrieval only, HTTP status codes, and versioning. It also covers concepts like filtering, sorting, paging, and common queries.
The document discusses ASP.NET Web API, which is a framework for building HTTP services that can be accessed from various applications and platforms. It supports building RESTful services and maps HTTP verbs to action methods. Web API supports JSON, XML, and BSON formats and can be self-hosted or hosted in IIS. Choosing between Web API and WCF depends on requirements around supported protocols, message exchange patterns, and framework versions. Web API uses controllers and routing to handle requests. It supports configuration, parameters, and custom result types. Media types and formatters are used to serialize requests and responses.
How to design a good rest api tools, techniques and best practices.Nuwan Dias
The document provides guidelines for designing a good REST API, covering topics such as data modeling, resource modeling, URI design, naming conventions, versioning, HTTP methods, pagination, security, specification formats, tools, and asynchronous APIs. An agenda is presented, and each topic is explained in detail over multiple pages with examples.
Automation API testing becoming a crucial part of most of the project. This whitepaper provides an insight into how API automation with REST Assured is certainly the way forward in API testing.
The document discusses using Postman to test REST APIs. Postman is an HTTP client that allows users to create and test HTTP requests. It provides a multi-window interface to work on APIs. Users can create requests, view responses, add variables, write test scripts, and view test results in Postman. The document also provides an example of testing the Newbook API, including GET, POST, PATCH, and other requests.
KaTe RESTful adapter for SAP Process Integration: IntroductionKate_RESTful
Introduction and sample walktrough of the KaTe RESTful adapter for SAP Process Integration
http://kate-group.de/sap-beratung-services-projektmanagment/sap-rest-adapter/
This document provides an overview of ASP.NET MVC 4 Web API. It discusses what an API is and why Web API is used. It covers key concepts like HTTP, REST, JSON. It describes features of Web API like routing, error handling, model validation, OData support, media formatters, and security. It also discusses using the HttpClient class and future plans.
The document discusses application programming interfaces (APIs) and different types of API architectures. It describes REST as an architectural style that focuses on resources and resource representations. The key principles of REST include identifying resources with URIs, manipulating resources through standard HTTP methods like GET, PUT, POST, and DELETE, self-descriptive messages containing metadata like content types, and hypermedia as the engine of application state by including related URIs in responses. Examples are provided of XML-RPC, SOAP, and JSON-RPC as alternative API styles oriented around remote procedure calls rather than resources.
A REST API involves more than just pushing data back and forth between endpoints. This presentation will explain what REST is and also present a variety of topics and questions you will certainly come across while implementing your API.
By Jeremy Brown @notmessenger http://notmessenger.com
The document discusses key concepts related to software performance testing. It defines performance testing as determining the speed or effectiveness of a computer system or software. It outlines various terminology used in performance testing like throughput, response time, tuning, benchmarking. It also describes different types of performance testing and factors that should be considered like bottlenecks, test process, tools, and metrics.
Covers topics like RestApi, Authentication, Authorization, Cacheability, Advantage of RestApi over SOAP and some basics regarding Open Data Protocol(OData).
The document discusses the differences between REST and SOAP APIs. REST APIs use standard HTTP methods to manipulate resources identified by URLs, are simpler to develop but less secure, while SOAP APIs are more complex but provide greater flexibility and security through XML envelopes and namespaces. Both styles have pros and cons, so providing both may be optimal but also increases maintenance overhead.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
1. Clone this wiki locally
Home
Sean McKenna edited this page on 20 Oct 2016 · 7 revisions
TrackAbout API Documentation
This is our in-depth documentation, for an overview of API endpoints please see our Interactive API
Reference.
Table of Contents
Introduction and Setup
Getting Started1.
HTTP vs HTTPS2.
User Agent3.
Security and Data Integrity4.
Understanding the API
REST Concepts5.
Interactive Documentation6.
Formats and Encoding7.
Basic Data Types8.
Validation9.
Implementation
Authentication9.
Standard Request/Response Patterns10.
Batch Requests11.
Status Codes and Errors12.
Sample Requests13.
Getting Started
The TrackAbout API provides a REST interface for sending data to TrackAbout, retrieving data, and
recording user activity (creating records). This documentation includes requirements for using the
API, descriptions of API formats and patterns, and guides and examples for common API
interactions.
New API clients will need a TrackAbout test environment, a user account, and an API key. Contact
TrackAbout support if you have any questions about this. Please read this entire document
thoroughly before starting implementation.
HTTP vs. HTTPS
All requests must be made using https . The TrackAbout API will not respond to requests made
using an http URL.
User-Agent
trackabout / API
Home
Tools for .NET Clients
Personal Open source Business Explore Pricing Sign in or Sign up
16 1 0
Code Issues 0 Pull requests 0 Projects 0 Wiki Pulse Graphs
Pages 2
Clone in Desktop
Watch Star Fork
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
1 of 13 20/02/2017 10:24
2. All API clients should send a User-Agent HTTP header to identify the software and/or device
making the request. TrackAbout may log the User Agent header and use it for metrics and support
requests. This header will be required unless special arrangements are made with TrackAbout.
Ideally, the header value should include a list of product tokens that identify the client application,
listed in order of importance. For example:
Client application name and version1.
Operating system name and version2.
Device name and version, if the application is running on a mobile device or other non-PC
hardware
3.
Each product token should be the the name of the software or hardware, followed optionally by a
slash and the version or build number. Tokens are separated by spaces, and there should be no
spaces within individual tokens. It's also possible to provide comments between parentheses if
needed.
Here are some examples of well-formed User Agent strings:
MyMobileApp/1.2.3 iOS/6.1 iPhone/4
MyEnterpriseMiddleware/Build-1234 (For TrackAbout release AWS0123; 2013-07-23) ERPSystemX Solaris/11.1
For those interested, RFC 2616 provides detailed specifications for the recommended syntax of
User Agent strings.
Security
As mentioned above, all requests must be made using HTTPS. Therefore all requests are safely
encrypted using SSL.
Data Integrity
All requests made are safely wrapped in database transactions. Meaning if there is an
unrecoverable error, for example if the connection was dropped, during the request and/or
processing, the database will safely rollback any data changes to avoid inconsistent/invalid data.
REST Concepts
Request Methods
REST APIs use standard HTTP methods to describe the type of action to take against the resource
identified in the request URI. As such, the TrackAbout API follows the standard semantics of these
HTTP methods:
GET is for retrieving data without modifying the state of the system
POST is for creating new resources, or for other general operations that have significant side
effects
PUT is for updating the state of an existing resource. The body of the request is intended to
fully describe the intended state of the resource
PATCH allows for partially updating a resource. In a typical patch request, all of the fields in the
request body are optional. Only the fields included in a specfic request are updated, and other
properties of the resource remain unchanged. Where allowed, sending a field with an empty
string or array value will clear the value of that property in TrackAbout
Idempotency
An idempotent request can be re-sent any number of times and have the same effect. For example,
a GET request repeated with the same URL and parameters will retrieve the same data (assuming
the underlying state of the data does not change), and a PUT or PATCH request repeated with the
same URL and body will result in the identified resource having the same state.
POST requests are defined as being non-idempotent. A simple example is a request for creating a
new resource; repeated POST requests will create multiple instances of resources with different
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
2 of 13 20/02/2017 10:24
3. unique IDs, or repeated requests may fail due to uniqueness requirements. In the TrackAbout API,
some other requests are defined as POST because of significant side effects, such as creating
records or modifying asset history.
Interactive Documentation
The TrackAbout API offers an interactive documentation page. Anonymous access is available, but
to enable interactive features you will first need to log in to TrackAbout using your TrackAbout
credentials.
The documentation describes each API operation, sorted by URI. For each operation, you can view:
The URI and method ( GET , POST , etc.) of the operation
A description of the operation
The structure of the request body (if applicable) and response body (click the Model Schema
links to view sample JSON)
Descriptions of URL parameters
Note that the base URL for every API operation is /api ; ensure that all of the URLs you form in
your web service client have this base path.
The documentation is interactive in that you can send test requests to most endpoints from within
your web browser. If the request takes URL parameters or requires data posted in the request
body, enter appropriate values into the text boxes for each parameter. For requests that require
data in the request body (e.g. most POST requests), you can click the Model Schema link in the
request body description to see a JSON sample, and you can click on the JSON sample itself to
copy it to the text box as a template for the request body you will send. Once you’ve entered the
necessary values, click the Send Request button to send the request and view the response headers
and body.
Note that the interactive documentation automatically uses your TrackAbout web site session to
authenticate your test requests. To construct requests programatically, you will need to add
authentication headers as described below. Furthermore, the requests being sent are both
validated and processed by the server. Sending non-GET requests will result in created and/or
modified data.
Formats and Encoding
The TrackAbout API only supports JSON for requests and responses at this time. All requests
should either have the request header Accept: application/json , or have format=json as a query
string parameter. When sending data in the request body for a POST or PUT request, send the data
in JSON format and add the request header Content-type: application/json .
The Sample Requests at the end of this document show examples of correct usage of request
headers.
UTF-8 Encoding
Every string passed to and from the TrackAbout API needs to be UTF-8 encoded.
Response Compression
The TrackAbout API supports compression for most responses. To request a compressed response,
include the Accept-Encoding header. The API supports gzip and deflate encoding schemas. For
example:
Accept-Encoding: gzip,deflate
Request Compression
The API also has limited support for compressed request body content in POST/PUT/PATCH
requests. Only the gzip encoding schema is supported. Compress the entire content of the
request body and include the header Content-Encoding: gzip in the request.
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
3 of 13 20/02/2017 10:24
4. Basic Data Types
The following table describes each of the basic data types used by the API and how they are
identified by the interactive documentation:
Data Type JSON Format/Range
byte 0–255 (unsigned)
boolean 1 / 0 / true / false
int 32-bit integers
long 64-bit integers
float 32-bit floating point
double 64-bit floating point
string "value"
Date yyyy-mm-ddThh:mm:ssZ
Array [value1, value2, ...]
Date Format
The recommended format for date/time values is ISO 8601 combined date and time format. Unless
otherwise specified, all date fields should include both a date and time value. Time values should
be sent in UTC using the "Z" or "+00:00" time zone designator. Requests sent in without a
timezone specified will be rejected with a 400 Bad Request .
Date-only fields will provide a format string to indicate how they should be strucutured. They will
be interpreted with the headquarters' timezone.
Here is an example of an acceptable date value for TrackAbout API requests and responses:
2013-06-21T09:41:08Z
String Value Restrictions (Enumerated Values)
Some string values in the API represent enumerated types: they are restricted to a set of known
values. The interactive documentation will list the allowed values when possible. For example, the
orderType field in some of the Orders endpoints is documented like this:
orderType (string) = ['CustomerDelivery' or 'BranchTransfer']
The request JSON should look like this:
{ "orderType": "CustomerDelivery", ... }
If you send value that is not one of the accepted values, the request will fail with status code 400.
Validation
Most APIs perform basic validation before the request is processed and will return a 400 error code
if any validation fails. The response body will contain information as to what field or fields failed
and why. For an example, see the 400 status code in the status code section below.
When working with an API for the first time, you can browse the associated validation and required
fields directly by going to the validation documentation. This avoids having to send a "dummy"
request to the API and receive the validation errors.
Authentication
The TrackAbout API supports Basic Authentication and Token Authentication. Each request must
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
4 of 13 20/02/2017 10:24
5. include valid HTTP headers that identify the user with one of these authentication methods. Basic
Authentication is appropriate for batch requests or other low volume activity from automated
systems; for example, synchronizing order data with a client accounting system. Token
Authentication is appropriate for high volume requests or applications in which a human user
athenticates using TrackAbout credentials.
Basic Authentication
A special web services user account should be used for basic authentication. You will also need a
TrackAbout API Key. Ask TrackAbout Support for help setting these up.
Each request must include two HTTP headers: X-API-Key and an Authorization header. Use the
former header to provide the TrackAbout API Key with every request:
X-API-Key: 950384A9-12DB-43B8-A8BB-DC8095CE2A3A
The value of the Authorization header consists of a valid username and password, concatenated
with a colon, like this:
user1:password1
This combination should then be base64 encoded, resulting in something like:
dXNlcjE6cGFzc3dvcmQx
An example of a request with the necessary Basic Authentication headers would thus be:
GET https://test.trackabout.com/api/locations HTTP/1.1
Host: test.trackabout.com
X-API-Key: 950384A9-12DB-43B8-A8BB-DC8095CE2A3A
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Accept: application/json
Token Authentication
With Token Authentication, the client sends a single request to the tokens API endpoint, which
validates a human user's credentials and returns a unique token that can be used for identifying
future API requests without resending the password. For Token Authentication, you will need a
TrackAbout API Key. Ask TrackAbout Support for help setting this up.
To generate and retrieve a token:
POST https://test.trackabout.com/api/tokens/basic HTTP/1.1
Host: test.trackabout.com
Accept: application/json
Content-type: application/json
{
"username": "user1",
"password": "password1",
"apiKey": "AC967D07-327D-410E-A579-C856CAC2A8EA",
"applicationInstanceId": "12345ABCDE"
}
The apiKey is provided by TrackAbout, and identifies your client application. The
applicationInstanceId value is generated by the client and is meant to uniquely indentify a
specific installation of the client application on a particular machine or device. For example, if this is
a mobile app deployed to a rugged device or smartphone, the same API key would be used for all
instances of the app, and the applicationInstanceId should be unique for each device it is
installed on. If it's a console application running on a server, a single ID value is sufficient.
If the username and password identify a valid user, the response would look like this:
{
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
5 of 13 20/02/2017 10:24
6. "token": "VGhpcyBpcyBhIHNhbXBsZSB0b2tlbiBzdHJpbmcu",
"expires": "2013-08-07T20:45:32.8892477Z"
}
The token value should be used in all subsequent requests to the API to identify this
authenticated user, using the X-Token HTTP header. For example:
GET /api/locations HTTP/1.1
Accept: application/json
X-Token: VGhpcyBpcyBhIHNhbXBsZSB0b2tlbiBzdHJpbmcu
This token can be reused, as long as it's not expired, for the length of time that the given user is
logged in. Tokens should not be reused over mulitple applicationInstanceIds . The X-API-Key
header is not required when using token authentication because the API Key is embedded in the
token value.
Impersonating a User
For requests that create records in TrackAbout, such as a load truck action, you can authenticate as
one user (typically a shared web service user) and create the record using the identity of a different
user (the human user actually performing the business activity). Specify the user to impersonate
with the X-Impersonate-User header, in addition to supplying the primary credentials as described
above. There are multiple ways to identify the user to impersonate, as determined by a second
header X-Impersonation-Method .
To identify a user by TrackAbout username:
X-Impersonate-User: username1
X-Impersonation-Method: Username
To identify by Accounting User ID (an identifier that can be registered in TrackAbout to match a
user’s identity as stored in an external system):
X-Impersonate-User: accountingSystemIDabc
X-Impersonation-Method: AccountingUserId
To use this feature, the API endpoint must support impersonation, and the user with which you are
authenticating must have the correct permissions assigned in TrackAbout. If you receive a 403
Forbidden error response, the error message may indicate that the endpoint does not support
impersonation or that your API user does not have permission to perform impersonation. Please
contact TrackAbout Support to resolve permissions issues.
Standard Patterns
The TrackAbout API makes use of a few standard patterns you will find across multiple endpoints.
Response Envelope
Many requests will return a list of items. The list is wrapped in a response object with a total-rows
field, as seen below. This is useful when you are working with paging functionality and the
response is a subset of the total result set.
Sample response from truck endpoint. Notice that there are 50 total rows but only 3 are currently
returned:
{
"totalRows": 50,
"rows": [{
"tId": 456,
"name": "Little Red Truck"
}, {
"tId": 123,
"name": "New Truck 1"
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
6 of 13 20/02/2017 10:24
7. }, {
"tId": 789,
"name": "New Truck 2"
}
]
}
TId and MId
Many resources in the TrackAbout Api can be identified with multiple IDs depending upon who
"owns" the data. To avoid ambiguity in these cases, TId and MId are used. The TId ("TrackAbout
ID") represents the ID that TrackAbout uses internally for the resource. The MId ("Master Id")
represents the ID that the accounting or backend system uses for the resource. When identifying a
resource in a request body, the resource will often be represented as an object with both types of
identifiers. Only one is required, and if both are supplied, the TId is preferred. For example, the
customer and originLocation resources are identified in two different ways in this POST request:
{
"orderNumber": "ORDER123",
"customer": { "tId": 85 },
"originLocation": { "mId": "Location456" },
...
}
Reference Objects
When a response contains information about an object that has its own API endpoint, only minimal
information will be returned about this referenced object. This is to keep performance high and to
encourage making a second request for that object's data instead of returning everything in one
large "data dump". The standard design of these reference objects is to return the tId , name , and
mId for the object. This tId is provided to allow querying of the resource directly and the name
and mId are provided for context.
Below is an example of the response from the assets endpoint for an individual asset. Notice how
only the tId , name , and mId are returned for the referenced customer object.
{
"rows": [
{
"customAssetProperties": [],
"customer": {
"tId": 12269,
"name": "John Doe",
"mId": "Doe"
},
"tId": 123,
"tag": "456"
}
],
"totalRows": 1
}
Paging
Requests that have the potential for a large number of results support paging. Requests that
support paging note this in their associated documentation on the docs page. There are 3 query
string parameters that control the result set.
Paging determines whether or not paging is enabled. This must be set to true to use the
other options. The default setting is true because non-paged results can take a much longer
time to run and can create very large responses.
Page determines the specific page of data that the request would like. Page 1 indicates the
first page.
PageSize determines the number of rows to return per page. The default is 50. Note that
requesting larger page sizes can negatively impact the performance and greatly increase the
response size.
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
7 of 13 20/02/2017 10:24
8. Record-Saving APIs
A variety of POST endpoints are designed for creating records (in other words, saving actions) in
TrackAbout. These APIs have a number of common elements:
Dates: the userEntryEndDate is the effective date of the record, typically the date/time at
which the user finished the action. userEntryStartDate is the start date of the record, the
date/time at which the user began
Assets: most record saving APIs require one or more assets or hard goods. Unique assets
typically have fields for tag and serialNumber , usually only one is required. An asset's
timeEntered is the date/time at which the asset was scanned or recorded for the action.
Assets may have additional fields as relevant to the specific type of record
Dynamic Forms: to utilize TrackAbout's Dynamic Forms feature, use the dynamicFormEntries
field. Each element in the array represents the value of a single form field entered by the user.
Consult TrackAbout support for assistance with this feature.
Custom Properties
Custom Properties are name-value pairs describing additional client-specific information for a
resource. In some GET requests, custom properties can be requested by listing the TIds of the
custom properties in a query string parameter. The response will include a list of the names, TIds,
and values for each requested custom property that is defined for the given resource.
To determine the list of custom property types available, there are various API endpoints with
paths ending in names such as customPropertyTypes . These GET requests return the names and
TIds of the custom properties that are applicable for a specific type of resource. For example, this
request:
GET /api/assets/customPropertyTypes
Will return a list of custom properties available for the given client that are applicable to asset-
related APIs:
{
"totalRows": 2,
"rows": [
{
"tId": 3,
"name": "Manufacture Date"
},
{
"tId": 10,
"name": "Valve Type"
}
]
}
These TIds can be used in the query string of appropriate API endpoints; for example:
GET /api/assets/tagged/12345?customAssetPropertyTypes=3,10
The response will include a list of the properties that are defined for the given asset:
"customAssetProperties": [
{
"propertyTypeTId": 3,
"name": "Manufacture Date",
"value": "12-2011"
},
...
]
Some requests also accept a similarly structured list of custom property TIds and values in the
request body, in order to update these values for a given resource; for example:
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
8 of 13 20/02/2017 10:24
9. POST /api/customers/batch
Allows custom properties to be sent in the request as follows:
{
"items": [
{
"mId": "CUSTOMER1",
"name": "CUSTOMER1 Name",
"customProperties": [
{ "tId": 4, "value": "custom value" },
{ "tId": 7, "value": "123" }
]
}
]
}
Batch Requests
Some API endpoints have a POST /api/some/path/batch request variation that supports batch
processing. Batch requests are useful for creating or updating a large number of entities in
TrackAbout, such as for synchronizing data from an accounting system. Batch endpoints use a
common pattern for request and response body structure, and typically have some shared
processing steps, response semantics, and HTTP status codes.
Request Body
A batch request body is simply a wrapper around a corresponding PUT or POST request for a
single entity. For example, the PUT request to create or update a single pending order looks like
this:
PUT /api/orders/pending/ORDER1
{
"orderType": "CustomerDelivery",
"customer": { "mId": "CUSTOMER1" }, ...
}
The batch request for pending orders uses the same structure, repeated in a list:
POST /api/orders/pending/batch
{
"items": [
{
"orderNumber": "ORDER1",
"orderType": "CustomerDelivery",
"customer": { "mId": "CUSTOMER1" }, ...
},
{
"orderNumber": "ORDER2", ...
}, ...
]
}
Note that the verb for a batch request is always POST , even though in this case the single-entity
request uses PUT .
Batch Request Processing
Batch API endpoints are typically designed to allow continuing processing if some items in the
batch fail validation or cause business logic violations. Each item in the batch request is validated
separately, and any items that fail validation are not further processed, and the validation failure is
reported in the response. However, there are some checks that will cause the entire request to fail
with a 4xx status code: insufficient permissions, empty request, request with too many items,
invalid JSON syntax, etc.
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
9 of 13 20/02/2017 10:24
10. Batch requests are processed synchronously; the server will not return a response until all items are
processed.
Response Body
All batch API endpoints have the same response structure:
200 OK
{
"items": [
{
"status": "Success",
"identity": "ORDER1"
},
{
"status": "Failed",
"identity": "ORDER2",
"errorCode": "ValidationFailure",
"errorMessage": "Customer is required"
}
]
}
The items list in the response will have one element for each item in the request. The status
property indicates whether the item was successfully processed, and the other properties help to
identify the item and any errors encountered.
Note that the status code for this response is 200 OK , even though there are some validation
errors: this means that the batch request as a whole was understood and the server was able to
attempt processing every item. Non-200 responses only occur when the entire request is rejected,
as described further above, or when there is an unexpected runtime error.
Status Codes and Errors
Each response from the TrackAbout API will include a standard numeric HTTP status code that
describes the overall result of the operation. The response body may include more details about
the result of the operation or any errors encountered. Status codes in the 200–299 range indicate
success, 400–499 indicate a problem with the content or meaning of the request that the client
provided, and 500–599 indicate a problem with the server.
200 - OK
This is the generic status code for a successfully processed request.
201 - Created
The resource was successfully created as requested. The response may contain information about
the newly-created resource. This is only returned for POST requests.
204 - No Content
The request was successfully processed, and the response body is empty. This may be returned for
some PUT or PATCH or DELETE requests where there is no additional information to return.
400 - Bad Request
There is either a problem with the formatting of the json or it may not have passed basic validation
rules. For example, when sending the following request:
POST https://test.trackabout.com/api/trucks/123/assets/loadedAt/987 HTTP/1.1
...
{
"userEntryStartDate": "2013-04-23T18:58:17Z",
"userEntryEndDate": "2013-04-23T19:05:16Z",
"assets": {
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
10 of 13 20/02/2017 10:24
11. "tagged": [
{
"timeEntered": "2013-04-23T18:59:03Z"
}
]
}
}
The response returned may be similar to the following. Notice how it is indicating two errors with
the request.
The first asset did not have a tag or serial number associated with it1.
The location tId specified in the url (987) does not exist in the system.2.
HTTP/1.1 400 ValidationFailure
...
{
"responseStatus": {
"errorCode": "AssetMustBeIdentified",
"message": "Either the tag or serial number must be specified for each asset.",
"errors": [
{
"errorCode": "AssetMustBeIdentified",
"fieldName": "Assets.Tagged[0].Tag",
"message": "Either the tag or serial number must be specified for each asset."
},
{
"errorCode": "InvalidLocation",
"fieldName": "LocationTId",
"message": "This field must identify a valid location"
}
]
}
}
401 - Unauthorized
The credentials supplied for the request are either incorrect or invalid or missing. Refer to the
authentication section above for instructions on setting this up.
403 - Forbidden
You do not have the appropriate permissions to perform the attempted operation, or the types of
credentials provided are not supported for that operation. The response may contain the
permissions that you require. Contact support for configuring permissions.
404 - Not Found
The API endpoint does not exist, or a resource identified in the URL does not exist, or the URL is
malformed. If the URL contains a parameterized value, make sure that you are correctly setting the
value.
406 - Not Acceptable
The resource you are requesting is not available in any formats you supplied in the Accept request
header. The response contains information on accepted formats.
422 - Unprocessable Entity
The request is well formed, but was unable to be completed or validated due to business logic
constraints, missing data, etc. For example, a value provided in the request body (such as a barcode
or lot number) does not match a pattern required by business rules configured for the client, or a
resource identified in the request body (such as for a location or customer) does not exist in the
TrackAbout system.
500 - Internal Server Error
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
11 of 13 20/02/2017 10:24
12. There was an unexpected problem processing your request. Please contact TrackAbout Support if
the problem persists.
Sample Requests
Note: Depending on what client you’re using to form HTTP requests, you may need to put
two carriage returns after the headers in a GET request to signify an empty request body.
Get a List of Trucks
In this example, the TIds and names of all “truck” locations are returned in the response.
Request:
GET https://test.trackabout.com/api/trucks HTTP/1.1
Host: test.trackabout.com
X-API-Key: 950384A9-12DB-43B8-A8BB-DC8095CE2A3A
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Accept: application/json
Connection: close
Response:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Wed, 24 Apr 2013 18:53:32 GMT
Connection: close
Content-Length: 127
{
"totalRows": 3,
"rows": [{
"tId": 456,
"name": "Little Red Truck"
}, {
"tId": 123,
"name": "New Truck 1"
}, {
"tId": 789,
"name": "New Truck 2"
}
]
}
Perform a Load Truck
In this example, a Load Truck record is created with 2 tagged assets and 1 not scanned asset, for
truck TId 123 and branch location TId 72. The response contains a confirmation message and
record ID.
Request:
POST https://test.trackabout.com/api/trucks/123/assets/loadedAt/72 HTTP/1.1
Host: test.trackabout.com
X-API-Key: 950384A9-12DB-43B8-A8BB-DC8095CE2A3A
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
X-Impersonate-User: username2
Accept: application/json
Content-Type: application/json
Connection: close
{
"userEntryStartDate": "2013-04-23T18:58:17-05:00",
"userEntryEndDate": "2013-04-23T19:05:16-05:00",
"assets": {
"tagged": [
{
"tag": {"entryMethod":"scanned","value":"000003957"},
Home · trackabout/API Wiki · GitHub https://github.com/trackabout/API/wiki#getting-started
12 of 13 20/02/2017 10:24