What is GraphQL?
GraphQL is a query language for APIs which has been adopted by companies such as Airbnb, GitHub, Yelp, PayPal and many others. Construct a request by defining the resources you want via a POST request to a server and receive a response that matches the format of your request.
If you are new to GraphQL, you should take some time to familiarize yourself with some basic GraphQL concepts before digging into our documentation. For a quick start on learning about GraphQL, head to their website to read their Introduction to GraphQL and Fullstack Tutorial.
What does it do?
The BenchPrep GraphQL API enables developers to complete (and automate) many administrative actions available in the Console App User Interface (UI), and query administrative data, establishing data flows between BenchPrep and external applications. Leveraging the APIs, developers are able to:
- Query data
For example, write a query to obtain information about users, such as when they were created, when they last logged in, and what courses they are enrolled in.
- Export data as CSV
- Construct a request by defining the resources you want via a POST request to a server and receive a response that matches the format of your request.
- Update data
- Mutations are GraphQL's way of modifying data, and could include creation of a record, deletion of a resource, modification of data on the resource, changing many records, etc.
Why use GraphQL?
GraphQL is designed for modern applications and provides a complete and understandable description of the data in the API. It gives you the power to ask for exactly what you need and nothing more, promoting independence, flexibility and performance by replacing the need to do multiple REST API calls.
With BenchPrep, GraphQL API provides critical efficiency in learning program administration, and flexibility in delivering optimal digital learning experiences. It allows for communication between BenchPrep and endless other applications, providing:
- Enabling connection to external applications (back-end systems, external learning experiences, etc.)
- Reducing time-to-value, eliminating reliance on BenchPrep resources and release cycles
- Reducing operational overhead by enabling automation of tasks like user and plan management, data import/export, etc.
- Learning Experiences
- Providing a streamlined learner experience (i.e. immediate, seamless access)
- Learning Data
- Enabling the delivery of learner data to external systems, as well as capturing data from external activities within BenchPrep
You will have full flexibility to do anything that is currently possible in the BenchPrep Console App. You could write your own Console application, easily integrate into your own admin, or write scripts to archive results on what Console does (like user, plan, or enrollment management).