[Geoserver-devel] Improvements to REST API Documentation

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski

Thanks Matt,

Really I am asking Matt lots of questions as I try to use our workspace api endpoint to figure out all of the rest tools Matt (and others?) seem to already be familiar with.

I want to be sceptical here as GeoServer has a habit of out living jackson / restlet / others …

The other tool mentioned is http://raml.org

···

On 3 February 2017 at 10:55, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be embedded in the code?
    It’s also the first time I see the wiki page. The “Annotation driven” part scares me quite a bit, can you make

sure the annotation classpath scan is not going to make the startup time longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea

···

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


I’ve used swagger (with the springfox library) on a springmvc project with pretty good results. I am not sure it’s a replacement itself for the end-user documentation we have, but they would definitely provide a very useful tool for exploring the api. A few points.

  • You are able to have it only scan particular packages for annotations, so if you put all your controllers in a single package hierarchy I’ve found the scanning time to be negligible
  • In order to theme the documentation you need to fork the swagger-ui project and do whatever theming and styling you deem fit if you’re not happy with the default UI. What i’ve done on other projects is:
  1. fork the swagger-ui repository into our organization
  2. apply the styling and logo changes required
  3. add a pom file that packages up the resources as a jar that can easily be depended on via maven
  • The docs are kind of implicitly versioned because they are driven from annotations in our code. That said the swagger model supports the notion of a “version” if you version your api separately from the rest of the codebase

-Justin

···

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Swagger is generally pretty adaptable and mostly painless to implement. The API interface is nice to work with once in place. The RAML approach is tedious, but might allow a deeper representation of the API.

Swagger ‘seems’ like the place to start. If it doesn’t work to everyone’s expectations, it’s minimal sunk cost in the implementation time. Unlike RAML, which will take quite a bit of time and possibly not end up substantially more useful than the Swagger-ui generated material.

Thanks,
-Reggie Beckwith

···

On Fri, Feb 3, 2017 at 1:13 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

I’ve used swagger (with the springfox library) on a springmvc project with pretty good results. I am not sure it’s a replacement itself for the end-user documentation we have, but they would definitely provide a very useful tool for exploring the api. A few points.

  • You are able to have it only scan particular packages for annotations, so if you put all your controllers in a single package hierarchy I’ve found the scanning time to be negligible
  • In order to theme the documentation you need to fork the swagger-ui project and do whatever theming and styling you deem fit if you’re not happy with the default UI. What i’ve done on other projects is:
  1. fork the swagger-ui repository into our organization
  2. apply the styling and logo changes required
  3. add a pom file that packages up the resources as a jar that can easily be depended on via maven
  • The docs are kind of implicitly versioned because they are driven from annotations in our code. That said the swagger model supports the notion of a “version” if you version your api separately from the rest of the codebase

-Justin

On Fri, Feb 3, 2017 at 11:07 AM Andrea Aime <andrea.aime@anonymised.com…> wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be embedded in the code?
    It’s also the first time I see the wiki page. The “Annotation driven” part scares me quite a bit, can you make

sure the annotation classpath scan is not going to make the startup time longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@anonymised.comsourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Jody/Matt,

You might be better of using the style API rather than the workspace API for a test / example, as it is rather more straightforward.

Torben

···

On Fri, Feb 3, 2017 at 1:42 PM, Jeffrey Beckwith <jbeckwith@anonymised.com> wrote:

Swagger is generally pretty adaptable and mostly painless to implement. The API interface is nice to work with once in place. The RAML approach is tedious, but might allow a deeper representation of the API.

Swagger ‘seems’ like the place to start. If it doesn’t work to everyone’s expectations, it’s minimal sunk cost in the implementation time. Unlike RAML, which will take quite a bit of time and possibly not end up substantially more useful than the Swagger-ui generated material.

Thanks,
-Reggie Beckwith


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Fri, Feb 3, 2017 at 1:13 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

I’ve used swagger (with the springfox library) on a springmvc project with pretty good results. I am not sure it’s a replacement itself for the end-user documentation we have, but they would definitely provide a very useful tool for exploring the api. A few points.

  • You are able to have it only scan particular packages for annotations, so if you put all your controllers in a single package hierarchy I’ve found the scanning time to be negligible
  • In order to theme the documentation you need to fork the swagger-ui project and do whatever theming and styling you deem fit if you’re not happy with the default UI. What i’ve done on other projects is:
  1. fork the swagger-ui repository into our organization
  2. apply the styling and logo changes required
  3. add a pom file that packages up the resources as a jar that can easily be depended on via maven
  • The docs are kind of implicitly versioned because they are driven from annotations in our code. That said the swagger model supports the notion of a “version” if you version your api separately from the rest of the codebase

-Justin

On Fri, Feb 3, 2017 at 11:07 AM Andrea Aime <andrea.aime@anonymised.com> wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be embedded in the code?
    It’s also the first time I see the wiki page. The “Annotation driven” part scares me quite a bit, can you make

sure the annotation classpath scan is not going to make the startup time longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Thanks Torben I will switch gears (don’t know why I though workspace was simple :stuck_out_tongue: )

···

On 3 February 2017 at 22:51, Torben Barsballe <tbarsballe@anonymised.com> wrote:

Jody/Matt,

You might be better of using the style API rather than the workspace API for a test / example, as it is rather more straightforward.

Torben


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

On Fri, Feb 3, 2017 at 1:42 PM, Jeffrey Beckwith <jbeckwith@anonymised.com> wrote:

Swagger is generally pretty adaptable and mostly painless to implement. The API interface is nice to work with once in place. The RAML approach is tedious, but might allow a deeper representation of the API.

Swagger ‘seems’ like the place to start. If it doesn’t work to everyone’s expectations, it’s minimal sunk cost in the implementation time. Unlike RAML, which will take quite a bit of time and possibly not end up substantially more useful than the Swagger-ui generated material.

Thanks,
-Reggie Beckwith


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Fri, Feb 3, 2017 at 1:13 PM, Justin Deoliveira <jdeolive@anonymised.com> wrote:

I’ve used swagger (with the springfox library) on a springmvc project with pretty good results. I am not sure it’s a replacement itself for the end-user documentation we have, but they would definitely provide a very useful tool for exploring the api. A few points.

  • You are able to have it only scan particular packages for annotations, so if you put all your controllers in a single package hierarchy I’ve found the scanning time to be negligible
  • In order to theme the documentation you need to fork the swagger-ui project and do whatever theming and styling you deem fit if you’re not happy with the default UI. What i’ve done on other projects is:
  1. fork the swagger-ui repository into our organization
  2. apply the styling and logo changes required
  3. add a pom file that packages up the resources as a jar that can easily be depended on via maven
  • The docs are kind of implicitly versioned because they are driven from annotations in our code. That said the swagger model supports the notion of a “version” if you version your api separately from the rest of the codebase

-Justin

On Fri, Feb 3, 2017 at 11:07 AM Andrea Aime <andrea.aime@anonymised.com> wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be embedded in the code?
    It’s also the first time I see the wiki page. The “Annotation driven” part scares me quite a bit, can you make

sure the annotation classpath scan is not going to make the startup time longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313

fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


Hi Matt.

I am all about improvements to documentation, and using the right tool for the job, and not being stuck with past decisions.

However, I second a few of Andrea's concerns. Unless we're going to migrate all of our docs to Swagger, how would it work to have documentation build using two different build tools? Do we trust Swagger to be around for a while?

That said, API docs and regular docs are kind of different things. I believe it could be possible to have both, a more human-written documentation of the REST API (in our Sphinx docs) and separately a from-the-code generated API docs, kind of like Javadocs I imagine.

Thanks,
Mike

Mike Pumphrey
Education Program Director | Boundless
917-338-0407
mike@anonymised.com
http://boundlessgeo.com
@boundlessgeo

On 2/3/2017 10:05 AM, Andrea Aime wrote:

HI Matt,
I don't know the tool, but wondering:

   - Is it going to make the REST api documentation into a separate
   documentation set as the user docs?
   - Can we version it along with GeoServer like we do with the user docs?
   - Can it be customized to have the GeoServer colors and logos?
   - What about restlets that require longer docs, are these going to be
   embedded in the code?

It's also the first time I see the wiki page. The "Annotation driven" part
scares me quite a bit, can you make
sure the annotation classpath scan is not going to make the startup time
longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <
mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to
start a conversation about possible improvements for the REST documentation
(GEOS-7931). One option is Swagger, which has a lot of supporting tooling
and is able to automatically generate docs from Spring MVC annotations --
though some additional annotations might be required to flesh things out.
What experience does everyone have with REST documentation formats and
tools?

Jody and I are doing some initial research and prototyping, and we have
gathered our notes so far on the wiki (https://github.com/geoserver/
geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski

------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

I think this is just for the rest api reference; I would still expect us to provide some api examples in the user guide.

I expect we could get swagger to build into the api reference docs into the user/target directory and then cross link from the sphinx user guide (although I note that they have a generator for “confluence wiki” ).

···

On 6 February 2017 at 12:50, Mike Pumphrey <mike@anonymised.com> wrote:

Hi Matt.

I am all about improvements to documentation, and using the right tool
for the job, and not being stuck with past decisions.

However, I second a few of Andrea’s concerns. Unless we’re going to
migrate all of our docs to Swagger, how would it work to have
documentation build using two different build tools? Do we trust Swagger
to be around for a while?

That said, API docs and regular docs are kind of different things. I
believe it could be possible to have both, a more human-written
documentation of the REST API (in our Sphinx docs) and separately a
from-the-code generated API docs, kind of like Javadocs I imagine.

Thanks,
Mike

Mike Pumphrey
Education Program Director | Boundless
917-338-0407
mike@anonymised.com
http://boundlessgeo.com
@boundlessgeo

On 2/3/2017 10:05 AM, Andrea Aime wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate
    documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be

embedded in the code?

It’s also the first time I see the wiki page. The “Annotation driven” part
scares me quite a bit, can you make
sure the annotation classpath scan is not going to make the startup time
longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <
mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to
start a conversation about possible improvements for the REST documentation
(GEOS-7931). One option is Swagger, which has a lot of supporting tooling
and is able to automatically generate docs from Spring MVC annotations –
though some additional annotations might be required to flesh things out.
What experience does everyone have with REST documentation formats and
tools?

Jody and I are doing some initial research and prototyping, and we have
gathered our notes so far on the wiki (https://github.com/geoserver/
geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski



Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

Hi all,

I wanted to add a little bit to the conversation around RAML and Swagger that took place in the dev meeting this week.

First, just a little bit about RAML: On its own, like swagger, it’s a specification for modeling APIs — basically just a yaml document listing endpoints, query parameters, request / response body schemas, etc. In both cases, what you can do with the spec really depends on the tools surrounding it.

With regard to rendering the document as markup, these are the best options I’ve seen for each format:

  1. Swagger:

(a.) There are several options for rendering, the most common and well-supported of which is the Swagger UI project – check out http://petstore.swagger.io/ to see an example in action. It’s not the prettiest thing, but it’s thorough and allows easy generation of sample requests. As Justin said, you could fork this project to add styling. It seems like it would be a very useful reference to go along with the existing documentation.

(b.) There are several other projects out there for rendering the swagger doc to markup, and even merging it with hand-written documentation like that currently in the Sphinx docs (e.g., Swagger2Markup: https://github.com/Swagger2Markup/swagger2markup). It’d be worth a deeper dive to investigate these more thoroughly.

(c.) One thing to note: The output of the online swagger editor (http://editor.swagger.io/#/) looks nice, but they haven’t actually made that template available anywhere else.

  1. RAML:

(a.) The main rendering tool is raml2html (and the related raml2md) – you can see an example of the output here: https://rawgit.com/raml2html/raml2html/master/examples/world-music-api.html. Note that it cannot automatically generate sample requests like swagger-ui.

(b.) MuleSoft has thrown a lot of weight behind RAML on their AnyPoint API Platform, so RAML makes more sense if you’re already on board for that. (I was, for another project). They have nice renderers, and use RAML as a shared spec for a bunch of different API tools.

As for other differences between them: I think it’s best to think of RAML as being intended to be written first, as part of API-driven development. To that end, they have put a lot of thought into features that make it friendly for designing an API by hand. A given endpoint in RAML can inherit “traits” and “types”, e.g., “pageable”, “secured”, and “readOnly”, and the meaning of those traits at the API level (like a list of common parameters, or required headers) would only have to be defined in one shared place. Swagger can fully describe the same API, but it lacks those features for concisely expressing its higher-level design. (For reference, here is the relevant section of the RAML spec: https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#resource-types-and-traits).

On the flip side, the RAML community has not really produced tools for automatically generating documentation from code. With Swagger, I’ve had a good experience with a project called Springfox for generating Swagger from Spring MVC annotations (this is the same tool Justin mentioned). It isn’t perfect, but it creates a very useful reference for developers with relatively little effort. There is no such project for going from Spring annotations to the current version of RAML (1.0). Swagger is a more complete platform in that respect, and it seems to me that the ability to auto-generate docs would be more useful at this point than a little more design expressiveness.

To address one other concern in this thread – Reggie, what kind of performance impact have you noticed on auto-generating Swagger docs from a Spring MVC project? It was minimal in my experience (agree with Justin).

Thanks,
Matt

···

On Mon, Feb 6, 2017 at 4:37 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

I think this is just for the rest api reference; I would still expect us to provide some api examples in the user guide.

I expect we could get swagger to build into the api reference docs into the user/target directory and then cross link from the sphinx user guide (although I note that they have a generator for “confluence wiki” ).


Jody Garnett

On 6 February 2017 at 12:50, Mike Pumphrey <mike@anonymised.com> wrote:

Hi Matt.

I am all about improvements to documentation, and using the right tool
for the job, and not being stuck with past decisions.

However, I second a few of Andrea’s concerns. Unless we’re going to
migrate all of our docs to Swagger, how would it work to have
documentation build using two different build tools? Do we trust Swagger
to be around for a while?

That said, API docs and regular docs are kind of different things. I
believe it could be possible to have both, a more human-written
documentation of the REST API (in our Sphinx docs) and separately a
from-the-code generated API docs, kind of like Javadocs I imagine.

Thanks,
Mike

Mike Pumphrey
Education Program Director | Boundless
917-338-0407
mike@anonymised.com
http://boundlessgeo.com
@boundlessgeo

On 2/3/2017 10:05 AM, Andrea Aime wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate
    documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be

embedded in the code?

It’s also the first time I see the wiki page. The “Annotation driven” part
scares me quite a bit, can you make
sure the annotation classpath scan is not going to make the startup time
longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <
mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to
start a conversation about possible improvements for the REST documentation
(GEOS-7931). One option is Swagger, which has a lot of supporting tooling
and is able to automatically generate docs from Spring MVC annotations –
though some additional annotations might be required to flesh things out.
What experience does everyone have with REST documentation formats and
tools?

Jody and I are doing some initial research and prototyping, and we have
gathered our notes so far on the wiki (https://github.com/geoserver/
geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski



Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Matt et al,

The performance impact of auto-generating the Swagger docs on startup was essentially negligible. 5 second penalty at the most it seemed. Perhaps with a giant number of endpoints it would get slower, but I think there were a couple hundred endpoints when I used it with good results.

Thanks,

Reggie

···

On Thu, Feb 9, 2017 at 8:35 AM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi all,

I wanted to add a little bit to the conversation around RAML and Swagger that took place in the dev meeting this week.

First, just a little bit about RAML: On its own, like swagger, it’s a specification for modeling APIs — basically just a yaml document listing endpoints, query parameters, request / response body schemas, etc. In both cases, what you can do with the spec really depends on the tools surrounding it.

With regard to rendering the document as markup, these are the best options I’ve seen for each format:

  1. Swagger:

(a.) There are several options for rendering, the most common and well-supported of which is the Swagger UI project – check out http://petstore.swagger.io/ to see an example in action. It’s not the prettiest thing, but it’s thorough and allows easy generation of sample requests. As Justin said, you could fork this project to add styling. It seems like it would be a very useful reference to go along with the existing documentation.

(b.) There are several other projects out there for rendering the swagger doc to markup, and even merging it with hand-written documentation like that currently in the Sphinx docs (e.g., Swagger2Markup: https://github.com/Swagger2Markup/swagger2markup). It’d be worth a deeper dive to investigate these more thoroughly.

(c.) One thing to note: The output of the online swagger editor (http://editor.swagger.io/#/) looks nice, but they haven’t actually made that template available anywhere else.

  1. RAML:

(a.) The main rendering tool is raml2html (and the related raml2md) – you can see an example of the output here: https://rawgit.com/raml2html/raml2html/master/examples/world-music-api.html. Note that it cannot automatically generate sample requests like swagger-ui.

(b.) MuleSoft has thrown a lot of weight behind RAML on their AnyPoint API Platform, so RAML makes more sense if you’re already on board for that. (I was, for another project). They have nice renderers, and use RAML as a shared spec for a bunch of different API tools.

As for other differences between them: I think it’s best to think of RAML as being intended to be written first, as part of API-driven development. To that end, they have put a lot of thought into features that make it friendly for designing an API by hand. A given endpoint in RAML can inherit “traits” and “types”, e.g., “pageable”, “secured”, and “readOnly”, and the meaning of those traits at the API level (like a list of common parameters, or required headers) would only have to be defined in one shared place. Swagger can fully describe the same API, but it lacks those features for concisely expressing its higher-level design. (For reference, here is the relevant section of the RAML spec: https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#resource-types-and-traits).

On the flip side, the RAML community has not really produced tools for automatically generating documentation from code. With Swagger, I’ve had a good experience with a project called Springfox for generating Swagger from Spring MVC annotations (this is the same tool Justin mentioned). It isn’t perfect, but it creates a very useful reference for developers with relatively little effort. There is no such project for going from Spring annotations to the current version of RAML (1.0). Swagger is a more complete platform in that respect, and it seems to me that the ability to auto-generate docs would be more useful at this point than a little more design expressiveness.

To address one other concern in this thread – Reggie, what kind of performance impact have you noticed on auto-generating Swagger docs from a Spring MVC project? It was minimal in my experience (agree with Justin).

Thanks,
Matt


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Mon, Feb 6, 2017 at 4:37 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

I think this is just for the rest api reference; I would still expect us to provide some api examples in the user guide.

I expect we could get swagger to build into the api reference docs into the user/target directory and then cross link from the sphinx user guide (although I note that they have a generator for “confluence wiki” ).


Jody Garnett

On 6 February 2017 at 12:50, Mike Pumphrey <mike@anonymised.com> wrote:

Hi Matt.

I am all about improvements to documentation, and using the right tool
for the job, and not being stuck with past decisions.

However, I second a few of Andrea’s concerns. Unless we’re going to
migrate all of our docs to Swagger, how would it work to have
documentation build using two different build tools? Do we trust Swagger
to be around for a while?

That said, API docs and regular docs are kind of different things. I
believe it could be possible to have both, a more human-written
documentation of the REST API (in our Sphinx docs) and separately a
from-the-code generated API docs, kind of like Javadocs I imagine.

Thanks,
Mike

Mike Pumphrey
Education Program Director | Boundless
917-338-0407
mike@anonymised.com
http://boundlessgeo.com
@boundlessgeo

On 2/3/2017 10:05 AM, Andrea Aime wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate
    documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be

embedded in the code?

It’s also the first time I see the wiki page. The “Annotation driven” part
scares me quite a bit, can you make
sure the annotation classpath scan is not going to make the startup time
longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <
mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to
start a conversation about possible improvements for the REST documentation
(GEOS-7931). One option is Swagger, which has a lot of supporting tooling
and is able to automatically generate docs from Spring MVC annotations –
though some additional annotations might be required to flesh things out.
What experience does everyone have with REST documentation formats and
tools?

Jody and I are doing some initial research and prototyping, and we have
gathered our notes so far on the wiki (https://github.com/geoserver/
geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski



Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

A big +1 to swagger. I’m pushing all the projects I’m involved with towards it, and indeed I’d like a ‘next generation’ of open standards → OGC specs to be conversations around swagger specs, instead of big word documents.

At Planet we started with RAML, but then got a dev who had lots of experience with all the various tooling and he put us on swagger.

Swagger has a lot more momentum from what I’ve seen. It’s actually evolved to be https://www.openapis.org/ - they fully opened the spec and it’s got a broad consortium of companies around it, with governance from the Linux Foundation. So the swagger spec is openapi, and the next iteration will be done with real open governance.

And it’s not a replacement for restlet / jackson or anything like that. I mean, you can generate from it, but I’d recommend even if there’s another auto-generation route that we still specify the API in swagger. But there’s no moving all documentation to it, it’s just provides a few ‘extras’, like auto-generating clients and interactive api reference. At Planet we have ‘docs’ (a markdown thing), and then the ‘api-explorer’ (the swagger thing).

Sometime soon I hope to get a sort of Restful WFS update using swagger to specify simpler, more modular endpoints for searching geospatial information.

···

On Thu, Feb 9, 2017 at 6:35 AM, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi all,

I wanted to add a little bit to the conversation around RAML and Swagger that took place in the dev meeting this week.

First, just a little bit about RAML: On its own, like swagger, it’s a specification for modeling APIs — basically just a yaml document listing endpoints, query parameters, request / response body schemas, etc. In both cases, what you can do with the spec really depends on the tools surrounding it.

With regard to rendering the document as markup, these are the best options I’ve seen for each format:

  1. Swagger:

(a.) There are several options for rendering, the most common and well-supported of which is the Swagger UI project – check out http://petstore.swagger.io/ to see an example in action. It’s not the prettiest thing, but it’s thorough and allows easy generation of sample requests. As Justin said, you could fork this project to add styling. It seems like it would be a very useful reference to go along with the existing documentation.

(b.) There are several other projects out there for rendering the swagger doc to markup, and even merging it with hand-written documentation like that currently in the Sphinx docs (e.g., Swagger2Markup: https://github.com/Swagger2Markup/swagger2markup). It’d be worth a deeper dive to investigate these more thoroughly.

(c.) One thing to note: The output of the online swagger editor (http://editor.swagger.io/#/) looks nice, but they haven’t actually made that template available anywhere else.

  1. RAML:

(a.) The main rendering tool is raml2html (and the related raml2md) – you can see an example of the output here: https://rawgit.com/raml2html/raml2html/master/examples/world-music-api.html. Note that it cannot automatically generate sample requests like swagger-ui.

(b.) MuleSoft has thrown a lot of weight behind RAML on their AnyPoint API Platform, so RAML makes more sense if you’re already on board for that. (I was, for another project). They have nice renderers, and use RAML as a shared spec for a bunch of different API tools.

As for other differences between them: I think it’s best to think of RAML as being intended to be written first, as part of API-driven development. To that end, they have put a lot of thought into features that make it friendly for designing an API by hand. A given endpoint in RAML can inherit “traits” and “types”, e.g., “pageable”, “secured”, and “readOnly”, and the meaning of those traits at the API level (like a list of common parameters, or required headers) would only have to be defined in one shared place. Swagger can fully describe the same API, but it lacks those features for concisely expressing its higher-level design. (For reference, here is the relevant section of the RAML spec: https://github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/#resource-types-and-traits).

On the flip side, the RAML community has not really produced tools for automatically generating documentation from code. With Swagger, I’ve had a good experience with a project called Springfox for generating Swagger from Spring MVC annotations (this is the same tool Justin mentioned). It isn’t perfect, but it creates a very useful reference for developers with relatively little effort. There is no such project for going from Spring annotations to the current version of RAML (1.0). Swagger is a more complete platform in that respect, and it seems to me that the ability to auto-generate docs would be more useful at this point than a little more design expressiveness.

To address one other concern in this thread – Reggie, what kind of performance impact have you noticed on auto-generating Swagger docs from a Spring MVC project? It was minimal in my experience (agree with Justin).

Thanks,
Matt


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Mon, Feb 6, 2017 at 4:37 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

I think this is just for the rest api reference; I would still expect us to provide some api examples in the user guide.

I expect we could get swagger to build into the api reference docs into the user/target directory and then cross link from the sphinx user guide (although I note that they have a generator for “confluence wiki” ).


Jody Garnett

On 6 February 2017 at 12:50, Mike Pumphrey <mike@anonymised.com> wrote:

Hi Matt.

I am all about improvements to documentation, and using the right tool
for the job, and not being stuck with past decisions.

However, I second a few of Andrea’s concerns. Unless we’re going to
migrate all of our docs to Swagger, how would it work to have
documentation build using two different build tools? Do we trust Swagger
to be around for a while?

That said, API docs and regular docs are kind of different things. I
believe it could be possible to have both, a more human-written
documentation of the REST API (in our Sphinx docs) and separately a
from-the-code generated API docs, kind of like Javadocs I imagine.

Thanks,
Mike

Mike Pumphrey
Education Program Director | Boundless
917-338-0407
mike@anonymised.com
http://boundlessgeo.com
@boundlessgeo

On 2/3/2017 10:05 AM, Andrea Aime wrote:

HI Matt,
I don’t know the tool, but wondering:

  • Is it going to make the REST api documentation into a separate
    documentation set as the user docs?
  • Can we version it along with GeoServer like we do with the user docs?
  • Can it be customized to have the GeoServer colors and logos?
  • What about restlets that require longer docs, are these going to be

embedded in the code?

It’s also the first time I see the wiki page. The “Annotation driven” part
scares me quite a bit, can you make
sure the annotation classpath scan is not going to make the startup time
longer? We are constantly fighting to keep
it at bay, we might have to make sure the packages containing

Cheers
Andrea

On Fri, Feb 3, 2017 at 5:55 PM, Matt Kruszewski <
mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to
start a conversation about possible improvements for the REST documentation
(GEOS-7931). One option is Swagger, which has a lot of supporting tooling
and is able to automatically generate docs from Spring MVC annotations –
though some additional annotations might be required to flesh things out.
What experience does everyone have with REST documentation formats and
tools?

Jody and I are doing some initial research and prototyping, and we have
gathered our notes so far on the wiki (https://github.com/geoserver/
geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski



Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.comrge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

In my initial go at swagger I may of been distracted by how nice it was to describe the end points and parameters; and ignored sheer amount of work required to document our XML output. It is basically reproducing an XMLSchema worth of information for the different end points. Helpful for JSON, but perhaps not suitable for our XStream based stores representation. I hope we can find a cheerful middle ground.

···

On 3 February 2017 at 08:55, Matt Kruszewski <mkruszewski@anonymised.com> wrote:

Hi Mike,

Given the upcoming switch to Spring MVC for the REST API, I wanted to start a conversation about possible improvements for the REST documentation (GEOS-7931). One option is Swagger, which has a lot of supporting tooling and is able to automatically generate docs from Spring MVC annotations – though some additional annotations might be required to flesh things out. What experience does everyone have with REST documentation formats and tools?

Jody and I are doing some initial research and prototyping, and we have gathered our notes so far on the wiki (https://github.com/geoserver/geoserver/wiki/REST-API-Refresh).

Thanks,
Matt Kruszewski


Check out the vibrant tech community on one of the world’s most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


Geoserver-devel mailing list
Geoserver-devel@anonymised.com.366…sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett