coala / corobo

A bot to help newcomers onboard OS projects! It's awesome!
MIT License
66 stars 103 forks source link

Write the webservices in some kind of API spec language and generate client from it #123

Closed meetmangukiya closed 7 years ago

meetmangukiya commented 7 years ago

RAML - Rest API Modeling Language is one of the candidates. I have already written the file for the coala API. There are client generators based on RAML, but the python support is pretty low and also, RAML 1.0 has pretty less libs since it is a bit recent. Complete list:

  1. https://github.com/vmware/nsxramlclient - Is a python2 library, and corobo is python3, so not really usable. https://github.com/vmware/nsxramlclient/issues/20. Another thing is that nsxramlclient depends on pyraml-parser which is RAML 0.8 implementation :worried:
  2. https://github.com/timofurrer-archive/ramlient - this looked pretty good to me API-wise, it dynamically generates the API call functions, etc. But this repo is no longer maintained :( - https://github.com/timofurrer-archive/ramlient/issues/1 -- CHOSEN
  3. https://github.com/val314159/raml-python - Doesn't work for RAML 1.0 - https://github.com/val314159/raml-python/issues/5

(Found with https://github.com/search?utf8=%E2%9C%93&q=raml+client&type= ?)

meetmangukiya commented 7 years ago

Options that we'd like to weigh:

  1. Wait for RAML support to magically appear soon, until then use something else( :point_down: )
  2. Write an own API wrapper, coala webservices is pretty small FWIW
  3. Make manual API calls
jayvdb commented 7 years ago

Building a API docs + wrapper using ramlfications & griffin would be interesting. https://github.com/spotify/ramlfications/pull/149 to get that CI green.

Have you tried RAMSES , mentioned on http://raml.org/developers/build-your-api ?

It would also be really interesting to use Flask with errbot, via Flask-RAML.

meetmangukiya commented 7 years ago

webservices spec will be written in RAML

meetmangukiya commented 7 years ago

client generator that'll be used is ramlient