Pro! Application Programming Interfaces (APIs)
Introduction
Pro!™ is a powerful, mature robust system for the development and management of items and tests. Pro! supports application program interfaces (API) which allows an organization to securely integrate Pro! into its ecosystem. Using a combination of the OAuth (Open Authorization) standard for authentication and authorization and OData (Open Data Protocol), an ISO/IEC-approved standard for best practices, Pro!’s APIs are RESTful, robust, and secure.
Standards, Query and Results
OData (Open Data Protocol) is an ISO/IEC-approved, OASIS standard that defines a set of best practices for building and consuming REST APIs. It enables the creation of REST-based services which allow resources identified using Uniform Resource Locators (URLs) and defined in a data model, to be published and edited by Web clients using simple HTTP messages.
The OData Protocol is different from other REST-based web service approaches in that it provides a uniform way to describe both the data and the data model. This improves semantic interoperability between systems and allows an ecosystem to emerge.
The filter system query option allows clients to filter a collection of resources that are addressed by a request URL. The expression specified with the filter is evaluated for each resource in the collection, and only items where the expression evaluates to true are included in the response. System query options can be used independently or combined to provide a robust method of control over the criteria and result set.
System query options filter, select, order by, count, top, skip and expand.
Security
Utilizing OAuth (Open Authorization), Pro!’s set of data APIs are secure. A security Bearer token is required to access each API. The Bearer token is obtained through a GetToken API that is authenticated using a user name, password, client ID and client secret code. The Bearer token expires, requiring re-authentication. The password is encrypted when stored and is 13 randomly selected characters that include alphabetics, numbers and special characters. All transmitted data is encrypted using HTTPS.
Logging
Pro! APIs provide robust database logging which captures information regarding request, exception, and trace information. The information can be used for auditing and forensic analysis.
Extensibility
The architecture supporting Pro!’s APIs facilitates quick extensibility to provide additional or supplemental APIs to meet your needs.
Documentation
State-of-the-art developer documentation is provided which not only supports a detailed description of each interface but also allows the developer to interact with the API resource without having any of the implementation logic in place.
In Summary
Pro! APIs are a powerful set of interfaces that can be used to easily integrate the Pro! Item Bank into an organization’s topography and provide data that can be used to supplement reporting, big data analysis, and downstream processes.
Appendix – Application Programming Interfaces (API)
The following is the list of the APIs with a brief description. See the online documentation for complete details.
ClassificationSet
Classifications are used to fully describe the item or test question. They are typically reflective of the testing program’s blueprint but can also contain other identifying metadata.
- classificationsets – Endpoint to retrieve a list of all classification sets.
- classificationsets/{id}/values/{value}/items – Endpoint to retrieve a list of all items that are assigned to the classification value for a given classification set.
- classificationsets/{id}/classificationareas – Endpoint to retrieve a list of all classification areas associated with a given classification set.
Examination
Pro! supports the creation, management, and publication of examinations. These APIs retrieve the authored examinations and associated data.
- examinations – Endpoint to retrieve a list of all Examinations.
- examinations/{id} – Endpoint to retrieve Examination data for a given examination ID.
Exhibit
Authored items or test questions can contain media or exhibits. This API allow for the retrieval of the exhibit content.
- exhibits/{id}/content – Endpoint to retrieve exhibit content for a given exhibit ID. The content field is binary content from Pro!’s digital assessment management system. This binary content is encoded as a Base64 string for easy transport.
Item
The item is the test question. Along with its content, associated metadata is needed to fully describe the item’s content area and performance.
- items/{id}/content – Endpoint to retrieve content for an item. The content returned includes the HTML snippets for the item’s component pieces, such as the stem and options. It will also return configuration data related to the content.
- items/{id}/irt – Endpoint to retrieve IRT data for an item.
- items/{id}/classificationtoplevel – Endpoint to retrieve a list of classifications top level value for an item.
- items/{id}/classification – Endpoint to retrieve a list of classifications for an item.
- items/{id}/rationale – Endpoint to retrieve stem and option rationales for an item.
- items/{id}/classificationall – Endpoint which retrieves the specified item’s classification value and description at each level.
Passage
A passage, also known as, a case statement or study, is content that is common across all items that are associated with the passage.
- passages/{id}/content – Endpoint to retrieve content for a passage. The Passage ID is returned as part of the Item Content API for items that are associated with a Passage. The content returned includes the HTML snippet for the passage.
Poolbook
Poolbooks are a collection of items that can be used in many ways within Pro!. Specifying the set of items to be used within an examination is one example.
- poolbooks – Endpoint to retrieve a list of all poolbooks
- poolbooks/{id}/items – Endpoint to retrieve a list of all items in a poolbook.
- poolbooks/{id}/itemclassificationall – Endpoint which retrieves the item’s classification values for all items referenced in the specified poolbook. Each level of the assigned classification will be returned along with its description.
- poolbooks/{id}/itemcontent – Endpoint which retrieves the Item content for all items referenced in the specified PoolBook.
- poolbooks/{id}/itemirt – Endpoint to retrieve the item’s IRT statistics for all items referenced in the specified poolbook.
- poolbooks/{id}/itemrationale – Endpoint which retrieves the Item and Answer Choice rationales for all items referenced in the specified poolbook.