API Challenges

The API Challenges API is used for managing a To-Do list.

You need to authenticate to create a session in the system. This will create a unique API repository with basic test data. As you interact with the API there are a variety of challenges to complete e.g. Get all TODOs, Delete a Todo, etc.

Each challenge is designed to teach you some aspect of how APIs work, and how to test them.

The API has documentation available.

A set of Challenges are available to guide you through the exploration and learning of the API. To complete each challenge you will have to explore a different aspect of API testing.

You can also view the data in the application without using the API. Using the Entities Explorer view.

Application

This application has been deployed to a cloud instance. It is also available to download and run locally.

When run in a cloud environment:

  • the data clears itself every 10 minutes
  • each user has a unique set of data to work with so no interference from other users
  • you need to create an X-CHALLENGER session to track your progress on the challenges (more info)

In single user mode, you can use the API without needing any extra headers or configuration.

How to Play in Multi-user Mode

More information on how to play the challenges in multi-user mode i.e. apichallenges.eviltester.com can be found on the multi-user instructions page:

Challenges

The Challenges can be completed by issuing HTTP API requests.

e.g. GET https://apichallenges.eviltester.com/todos would complete the challenge to "GET the list of todos"

You can also GET https://apichallenges.eviltester.com/challenges to get the list of challenges and their status as an API call.

Challenge Solutions

You can find solutions to all of the challenges here:

How to Track Your Progress

The actual challenges page is available from the site menu:

To track your challenges and use the gamification tracking to view your progress you'll need to:

  • create a challenger by issuing a POST request on the /challenger endpoint
  • the response will include an X-CHALLENGER header with a unique GUID
  • this GUID is the reference for an in-memory database in the API Challenges
  • make requests to the API with the X-CHALLENGER header in the request headers
  • you can then create and amend data in the database using the API
  • and your progress will be tracked in the system memory

Full details are included in the multi-user instructions. And in the information on the challenges list page.