Apiary.io – REST tools for API documentation and testing
apiary.io
apiary.io
All I had to do was create a github repo and that was it: https://github.com/timdorr/model-s-api
It's great for public projects because there are both comments, which allows for inline discussion, and a mock API server, which doesn't help me so much (Tesla's API implementation isn't true REST) but allows others to throw things at an endpoint without worrying about consequences.
One of the devs was even willing to get involved and issued a pull request for the repo! https://github.com/timdorr/model-s-api/commit/b0669d Awesome guys!
The services they provide are really useful for developing & testing REST services, but it is also cool because the service can be used for somewhat unexpected things :-).
I have used their API from F# to create a "type provider" (a compiler plugin) that smoothly generates type information based on the blueprint, so you can program against REST service documented on Apiary with autocomplete and type checking:
The description is here: http://fsharp.github.io/FSharp.Data/experimental/ApiaryProvi...
And a larger example (running as JavaScript) is here (sorry for the poor formatting): http://funscript.info/samples/moviedatabase.html
I would love to do a one-click deploy to express/everyauth (for node) or app simple sinatra/warden app for the ruby folks.
Once you define the auth requirements and the API itself, there's little left beyond the boilerplate.
I imagine a simple, closed-loop solution with semantic versioning that consumes the blueprint like a config file. As we update the blueprint and bump versions, the appropriate changes would be reflected on the server. Your live environment would be naturally in sync with documentation, and it would be versioned and tested.
Such a solution entirely frees us up to focus on the app itself, which would be very cool.
From what I tried, it is fairly easy to get "almost there", but the remaining 10% is dealbreaker. If too much editing constraints are placed on resulting application, it feels odd and it's easy to break them and thus diverge from original blueprint.
One possible approach is to maintain original blueprint, then say "Let us implement" and completely blueprint as "primary data source" into scaffolded application -- into module/method docstrings and start generating blueprint back from there.
However, we are yet to find something that feels unobstrusive and natural during whole development cycle. Suggestions certainly welcome.
Rather than having a 100% there solution that's opaque, I think the cool thing would be to have an open source project that handles the boilerplate.
Then, you could fork, point to your blueprint, and deploy in minutes and then do whatever tweaking is required to cover the remaining 10% (there's always something).
Keep up the great work--I am definitely interested (and will check out swagger, as well!).
https://github.com/wordnik/swagger-codegen#to-build-a-server...
And it's based on an intuitive JSON structure.
If you like KATT/Apiary/HTTP mockeries, keep an eye on https://github.com/andreineculau/hyperrest-bin and https://github.com/klarna/katt
Until then it's still a pretty damn good web service centric markdown editor.
May I ask what your use case for response replay is? Testing or debugging?
If you are interested in this, please subscribe to http://support.apiary.io/forums/120125-general/suggestions/3... and we'll let you know once it will be available for testing.
It's now one of our three running projects and you're gonna love it ;)
https://github.com/wordnik/swagger-core/wiki/Downloads
(Node inspector recently added for command-line happiness.)
I'd say that just for getting started, hosted solution works better ;)
Anyways; we love OSS and we are gradually open-sourcing more and more from our toolbelt. Parser is completely open-source (current one https://github.com/apiaryio/blueprint-parser as well as the upcoming version https://github.com/apiaryio/snowcrash ).
More is coming soon ;)
(But yes, if you prefer writing JSON over Markdown...)