I've had a need in a few projects for a REST API that doesn't behave well - takes a long time to respond, or never responds, returns unexpected status codes etc.
That can be very useful for testing that clients cope gracefully with unexpected responses.
Till now I've always coded a stub API in the project and run it locally, but I've put a few 'misbehaved' endpoints together and published them at
www.badapi.net, and the source is on GitHub here:
sixeyed/badapi.net.
You can browse to the home page and see the available endpoints. I'll be adding more as I think of them, and I may give the styling of the help pages a bit more thought...
As of today's release, the misbehaving endpoints available to you are:
GET longrunning?between={between}&and={and} - Waits for a (short) random period before returning
GET verylongrunning?between={between}&and={and} -Waits for a (long) random period before returning
GET internalservererror - Returns 500: Internal Server Error
GET badrequest - Returns 400: BadRequest
GET notfound - Returns 404: Not Found
GET unauthorized - Returns 401: Unauthorized
GET forbidden - Returns 403: Forbidden
GET conflict -Returns 409: Conflict
GET status/{code}?reason={reason} - Returns the provided status code
Go bad.