Eric: Out of curiosity I was able to generate it with the tooling I
mentioned here:

https://github.com/dewrich/incubator-trafficcontrol/blob/swagger-demo/traffic_ops/traffic_ops_golang/docs/swagger.rst

-Dew

On Tue, Feb 20, 2018 at 10:38 AM, Dewayne Richardson <dewr...@gmail.com>
wrote:

> Yes the plan was to get the initial thumbs up, then figure out how we can
> deploy it (by default swagger generates interactive, meaning it needs a
> server, UI doc).  A quick internet search says there does look like tooling
> for converting swagger docs to .rst (https://github.com/Arello-
> Mobile/swagger2rst).
>
> Once we see that it's going to all work out then we'll start removing the
> old API docs and hook in the new ones.
>
> -Dew
>
> On Tue, Feb 20, 2018 at 9:57 AM, Eric Friedrich (efriedri) <
> efrie...@cisco.com> wrote:
>
>> 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