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