Is it possible to take the swagger generated documentation and have that 
automatically included in the read-the-docs site? 

Asked another way: Can swagger generate docs in ReStructed Text (.rst) format?

—Eric


> On Feb 20, 2018, at 11:38 AM, Dave Neuman <neu...@apache.org> wrote:
> 
> Sounds good.  I look forward to seeing it merged into our repo.
> I guess this means there will need to be a PR to remove our current API
> docs as they get moved to swagger.
> 
> On Tue, Feb 20, 2018 at 8:40 AM, Jeremy Mitchell <mitchell...@gmail.com>
> wrote:
> 
>> I think this all sounds very promising. Some advantages that I see are:
>> 
>> - docs never drift from API implementation (currently our docs get out of
>> sync real fast)
>> - this provides yet another interface -
>> https://app.swaggerhub.com/apis/dewrich/traffic-ops_api/1.3 -  (in
>> addition
>> to TP) to interact with the API
>> - a great way to demonstrate / educate developers on the capabilities of
>> the api
>> 
>> plus, i heard some bonus features that could be really interesting:
>> 
>> - auto generation of a TO golang client. can we deprecate the old TO client
>> in favor of an auto-generated one? The current TO client never seems to
>> stay in sync with the api
>> - generating server stubs
>> 
>> imo our api can never be fully auto-generated because of the business logic
>> that needs to be accounted for....but it would be pretty neat if all we had
>> to do was "define" the api in a yaml file and that yaml file would spit out
>> documentation, tests, clients (be it golang or java or whatever), and
>> server side code (stubs) and then all we could focus on writing code
>> specific to business logic.
>> 
>> my guess is to really do this right, we'd have to rev the api version to
>> 2.0 to make the api more swagger friendly...tools (swagger) like
>> consistency and our api is far from consistent...
>> 
>> jeremy
>> 
>> On Wed, Feb 14, 2018 at 10:08 AM, Durfey, Ryan <ryan_dur...@comcast.com>
>> wrote:
>> 
>>> I am +1 on the swagger concept.  This makes working with APIs much easier
>>> for non-developer staff and makes it easier to educate customers as well.
>>> 
>>> Ryan Durfey    M | 303-524-5099
>>> CDN Support (24x7): 866-405-2993 or cdn_supp...@comcast.com<mailto:
>>> cdn_supp...@comcast.com>
>>> 
>>> From: Dewayne Richardson <dewr...@gmail.com>
>>> Reply-To: "dev@trafficcontrol.incubator.apache.org" <
>>> dev@trafficcontrol.incubator.apache.org>
>>> Date: Wednesday, February 14, 2018 at 9:34 AM
>>> To: "dev@trafficcontrol.incubator.apache.org" <
>>> dev@trafficcontrol.incubator.apache.org>
>>> Subject: Traffic Ops API Swagger Doc
>>> 
>>> We've been working diligently on the TO Golang Rewrite
>>> <https://github.com/apache/incubator-trafficcontrol/projects/2> project
>> to
>>> obviously rewrite the Perl into Go, but also to improve our Testing and
>>> Documentation efforts.  I presented the idea of using Swagger several
>>> summits (years) ago about using Swagger to help drive our Traffic Ops API
>>> documentation.  Since then Swagger has evolved and is becoming the de
>> facto
>>> standard for building (the potential for generating TO Golang Client and
>>> Server stubs is now available) and documenting REST APIs.
>>> 
>>> I would like to propose going forward that we use Swagger for future API
>>> level documentation (because it can be generated out of our Golang
>>> code/structs).  The below resources point out a TO API version 1.3 (the
>>> version we decided to rev for the rewritten Golang endpoints).  The
>> intent
>>> behind 1.3 is obviously an improved version of the API (entirely backward
>>> compatible to 1.2), but also to give us a starting point for building the
>>> API doc in Swagger.
>>> 
>>> The following resources are my examples:
>>> 
>>> Swagger has several implementations and I chose go-swagger
>>> <https://github.com/go-swagger/go-swagger> because it has more Golang
>>> features.
>>> 
>>> *Sample TO API doc *
>>> 
>>> https://app.swaggerhub.com/apis/dewrich/traffic-ops_api/1.3
>>> 
>>> 
>>> *Sample TO Golang code with embedded doc*
>>> 
>>> Generated from the combination of these Golang documentation "hooks"
>>> (there's current a go-swagger bug that prevents the doc from being tied
>>> directly into the handlers)
>>> https://github.com/dewrich/incubator-trafficcontrol/tree/
>>> swagger-demo/traffic_ops/traffic_ops_golang/docs
>>> 
>>> And the *asns.go*, *cdns.go*, *divisions.go*, *regions.go* and
>>> *statuses.go*
>>> structs in my branch here:
>>> https://github.com/dewrich/incubator-trafficcontrol/tree/
>>> swagger-demo/lib/go-tc
>>> 
>>> 
>>> *TO Client Generated from Swagger*
>>> 
>>> This new Golang package is only a sample of a TO client generated (based
>>> upon the the code generated swagger.json
>>> <http://swagger.https://github.com/dewrich/incubator-
>>> trafficcontrol/blob/swagger-demo/traffic_ops/traffic_ops_
>>> golang/docs/swagger.json<http://swagger.https:/github.com/
>>> dewrich/incubator-trafficcontrol/blob/swagger-
>>> demo/traffic_ops/traffic_ops_golang/docs/swagger.json>>
>>> )
>>> 
>>> https://github.com/dewrich/incubator-trafficcontrol/tree/
>>> swagger-demo/traffic_ops/traffic_ops_golang/toclient
>>> https://github.com/dewrich/incubator-trafficcontrol/tree/
>>> swagger-demo/traffic_ops/traffic_ops_golang/toclient/main.go
>>> 
>>> The hope with tying the documentation closer to the code will help with
>>> keeping the API docs up-to-date, as well as providing more documentation
>>> for developers.
>>> 
>>> Please give your thoughts on this idea as well as a vote by Feb 21 (a
>> week
>>> from today) so that we can move forward with building our TO API doc.
>>> 
>>> -Dew
>>> 
>>> 
>> 

Reply via email to