The API Challenges is an application which you can use to practice API testing and automating. It is written in Java, runnable locally and has been deployed to the cloud for easy access. It contains a functional API and a set of challenges for you to work through.
The API Challenges is a simple CRUD (Create, Read, Update, Delete) API.
It also has a set of challenges that are tracked as you explore and test the API.
Everything runs in memory, or stores challenge session ot files, so there is no database to worry about.
About The Challenges Application
How to Create a Multi-User Session
Download
The API Challenger is built on “The Thingifier” and downloadable from the release pages.
Download the .jar file from the releases page or specific versions listed below.
java -jar apichallenges.jar
- visit http://localhost:4567
How to Install and Use For Single Player on Win and Mac
Source
The application is open source and full code in on Github:
It has been deployed as a multi user application to Heroku
Related Blog Posts
Learning Modes
The Mirror Mode is a good way to start learning tooling because it reflects back what you send so you can get used to any tool and see how it works.
The Simulation Mode is a set of hard-coded data to specific requests, although it does try to respond appropriately to specific verbs. It is a useful way to compare different tooling without specific data and environment requirements.
Challenge How Tos and Solutions
- 01 POST challenger 201
- 02 GET challenges 200
- 03 GET todos 200
- 04 GET todo 404
- 05 GET todos/id 200
- 06 GET todos/id 404
- 07 HEAD todos 200
- 08 POST todos 201
- 09 GET todos 200 Filter
- 10 POST todos 400
- 11 POST todos/id 200
- 12 DELETE todos/id 200
- 13 OPTIONS todos - 200
- 14 GET todos XML - 200
- 15 GET todos JSON - 200
- 16 GET todos Any - 200
- 17 GET todos XML Preferred - 200
- 18 GET todos No Accept - 200
- 19 GET todos invalid Accept - 406
- 20 POST todos create with XML
- 21 POST todos create with JSON
- 22 POST todos (415) unsupported
- 23 POST todos XML accept JSON
- 24 POST todos JSON accept XML
- 25, 26, 27, 28 Status Code Challenges
- 29 Authentication 401
- 30 Authentication 201
- 31 Forbidden 403
- 32 Unauthorized 401
- 33 Authorized GET 200
- 34 POST Amend 200
- 35, 36 POST Unauthorised
- 37,38 How To - Use Bearer Tokens
Challenge Debriefs
Support This Project
If you find value in the API and documentation then consider supporting this project by buying my case study book Automating and Testing a REST API.
Or supporting this project through Patreon. For $1 a month, you join a community of testers improving their skills and advancing their craft, receive exclusive blog posts, and extra ad free videos. You also help support the test community by covering the costs of the hosting that allows my test applications to be used online at no cost to the end user.