catmaid / CATMAID

Collaborative Annotation Toolkit for Massive Amounts of Image Data
https://catmaid.org
GNU General Public License v3.0
185 stars 56 forks source link

API & Documentation Focus Week #1181

Open aschampion opened 8 years ago

aschampion commented 8 years ago

Goals

  1. To simplify the process of building tools that consume, process, export or import data in CATMAID through the HTTP API by providing a clean, clear, consistent interface.
  2. To reduce unnecessary coupling between the HTTP API and client and the resulting brittleness and maintenance overhead.
  3. To lower the barrier to use of the CATMAID API and contribution to CATMAID for developers others than the core contributors.
  4. To better operate as a module of a pipeline or stack, rather than dictate it.

    Primary Outcomes

    • [x] A documented partial-REST HTTP API that provides generic, resource-oriented interfaces for core data, with specialized methods where speed or special behavior is necessary for the CATMAID client.
    • [ ] Review of HTTP API use in the CATMAID client to encourage reuse and make clear for each specialized interface what problem it is solving.
    • [x] Swagger documentation for all HTTP API endpoints.
    • Migration documentation from the old HTTP API to the new API.
    • ~~As a gesture of good faith to third-party consumers of the CATMAID HTTP API, update RCatmaid for the new API and set up tests for it.~~
    • [x] Create an API changelog, parallel to the feature changelog, that documents all additions, changes and deprecations to the HTTP API, grouped by release.
    • [ ] Provide an easy method to generate all documentation for CATMAID, including general documentation, Python documentation, HTTP API documentation, and client Javascript documentation.
    • [x] Provide or link version-appropriate documentation from the CATMAID client and admin interfaces.

      Secondary Outcomes

    • [ ] Migrate error handling to HTTP semantics and responses where appropriate.
    • [x] Better organization of API tests.
    • [x] A pylint rc settings file run as part of continuous integration, but not yet required to pass.
    • [x] Automatically generate and publish all documentation for CATMAID on each release.
    • [x] Move catmaid.org hosting to GitHub pages Read the Docs.

      Inspiration

    • http://connectomes.utah.edu/index.html
    • http://www.knossostool.org/documentation/ (For landing page and user docs.)
aschampion commented 8 years ago

Day 1 planning and goals (nevermind that it's Wednesday):

Agreed standards:

aschampion commented 8 years ago

Notes on API endpoints from Wednesday meeting