Changes

Jump to: navigation, search

Community:SummerOfCode15

554 bytes removed, 13:21, 16 February 2015
tidied up explanation
|-
| Define, test, and publish json hyperschemas for all release engineering APIs
| We have several APIs (e.g. buildapi, clobberer, buildapi(modern) mapper, mozpool, modern mapperslavealloc, slaveapi, ...) but have no central standardised way of defining them, publishing them, documenting them, or sharing them. A cool project would be to use json hyperschema (see e.g. https://brandur.org/elegant-apis) to define all our apis, and have a framework for auto testing them, auto-documenting them, even potentially auto-generating client libraries for them e.g. in python, and auto-publishing the schemas to a central location for reference. Another interesting option might be using http://swagger.io/. At the moment we have many systems that were developed before RelengAPI was created, and therefore not all our services are deployed into RelengAPI. Since we have many systems deployed built on different technologies (RelengAPI and Buildbot are two examples of this) with many of them supporting a REST API, we wanted to define a standard way of describing these web services, that would be sufficiently generic that we could automatically generate documentation, generate client libraries (e.g. in python, node.js, go, java, …) that could interact with the API endpoints.
Example REST apis that we have are:
* Build API: https://wiki.mozilla.org/ReleaseEngineering/Applications/BuildAPI
* Mapper: https://wiki.mozilla.org/ReleaseEngineering/Applications/Mapper
* Clobberer: https://api.pub.build.mozilla.org/docs/usage/clobberer/#endpoints
* (Modern) Mapper: https://wiki.mozilla.org/ReleaseEngineering/Applications/Mapper
* Slave API: http://mozilla-slaveapi.readthedocs.org/en/latest/api/#slaves-slave-actions-disable
Confirm
142
edits

Navigation menu