Challenge Overview
Welcome to the Topcoder Services - OpenAPI Specification contest. As part of this contest, you will create the OpenAPI based specification for a new set of services on the Topcoder platform.
Contest Details
Topcoder is now streamlining their APIs by releasing a new version and following a standard. As a start, we are going meta - creating an API that will give information on the existing APIs. In other words, we will create a service that can give information on other services existing on Topcoder.
We want you to create a OpenAPI specification for this meta service. It will have the following endpoints:
- GET /v5/bus/services
- POST /v5/bus/services
- PUT /v5/bus/services/:serviceName
- DELETE /v5/bus/services/:serviceName
- GET /v5/bus/services/:serviceName/payloads
- POST /v5/bus/services/:serviceName/payloads
- GET /v5/bus/services/:serviceName/payloads/:payloadName
- PUT /v5/bus/services/:serviceName/payloads/:payloadName
- DELETE /v5/bus/services/:serviceName/payloads/:payloadName
The data structure involved here will be of the following format:
{ "serviceId": "59e774dac301ea001249bb22", "name": "ap-challenge-service", "version": "5.0.1", "commitHash": "b2037acaf982370286b21eca2e40f4353b59e9c9", "description": "TC Challenge API", "baseURL": "https://api.topcoder.com/v5/challenges", "events": [ { "name": "createEvent", "topics": [ "notifications.kafka.queue.java.test" ], "payloadMimeType": "application/json", "payloadFormat": {} } ] }
“serviceName” route parameter in the endpoints corresponds to “name” attribute above. Additionally, “payloadName” route parameter corresponds to “event”.”name” attribute. Unless otherwise mentioned, all attributes will be of type String (or perhaps an object with properties of type String). Additionally, we will share with you a document that outlines the Standard that we will follow. You will find this in the contest forum.