[GeoNetwork-devel] API doc

Hi all, I would like your feedback on API & API documentation.

For Jeeves services we used to have the XML services doc [1] which was quite hard to maintain. With the move to Spring MVC, we have now in on place in the Java code the description of the service (instead of 2 places with Jeeves). It could make sense to try to generate the doc from the Java code.

One option could be to use springfox [2] and swagger [3] which allows to document the service in the source (with annotations [4]) and generate the API doc from that.

An experiment was made in this PR [5] and the API doc could be published by the catalog using swagger-ui eg. http://apps.titellus.net/gnmdr/swagger-ui/

Before going further, It would be nice to discuss:

  • does this sounds relevant to all ?
  • is there any other/better alternatives ?
  • and if we decide to go that direction, decide on the URL structure and make that approach mandatory for all services for future releases.

What do you think ?

Looking forward your feedback.

Francois

[1] http://geonetwork-opensource.org/manuals/2.10.4/eng/developer/xml_services/index.html
[2] http://springfox.github.io/springfox/docs/current/
[3] http://swagger.io/
[4] https://github.com/fxprunayre/core-geonetwork/blob/improvement/metadata/resources/services/src/main/java/org/fao/geonet/services/api/metadata/resources/ResourcesApi.java#L121
[5] https://github.com/geonetwork/core-geonetwork/pull/1385

Hi Francois

I don’t know other tools for this, this one looks a nice option. If documentation can be generated automatically, thats really good. Now the documentation for API requires manual maintenance and is not updated properly.

+1 for this.

Regards,
Jose García

···

On Thu, Jan 14, 2016 at 12:55 PM, Francois Prunayre <fx.prunayre@anonymised.com…31…> wrote:

Hi all, I would like your feedback on API & API documentation.

For Jeeves services we used to have the XML services doc [1] which was quite hard to maintain. With the move to Spring MVC, we have now in on place in the Java code the description of the service (instead of 2 places with Jeeves). It could make sense to try to generate the doc from the Java code.

One option could be to use springfox [2] and swagger [3] which allows to document the service in the source (with annotations [4]) and generate the API doc from that.

An experiment was made in this PR [5] and the API doc could be published by the catalog using swagger-ui eg. http://apps.titellus.net/gnmdr/swagger-ui/

Before going further, It would be nice to discuss:

  • does this sounds relevant to all ?
  • is there any other/better alternatives ?
  • and if we decide to go that direction, decide on the URL structure and make that approach mandatory for all services for future releases.

What do you think ?

Looking forward your feedback.

Francois

[1] http://geonetwork-opensource.org/manuals/2.10.4/eng/developer/xml_services/index.html
[2] http://springfox.github.io/springfox/docs/current/
[3] http://swagger.io/
[4] https://github.com/fxprunayre/core-geonetwork/blob/improvement/metadata/resources/services/src/main/java/org/fao/geonet/services/api/metadata/resources/ResourcesApi.java#L121
[5] https://github.com/geonetwork/core-geonetwork/pull/1385


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Vriendelijke groeten / Kind regards,

Jose García


Veenderweg 13
6721 WD Bennekom
The Netherlands
T: +31 (0)318 416664

Please consider the environment before printing this email.

Hi,

The link http://apps.titellus.net/gnmdr/swagger-ui/# doesn’t show anything, should it show the API doc ?
I think it’s a very good idea to have an API doc auto generated, even though the annotations are quite intrusive in the code.

+1

···

On Thu, Jan 14, 2016 at 1:49 PM, Jose Garcia <jose.garcia@anonymised.com> wrote:

Hi Francois

I don’t know other tools for this, this one looks a nice option. If documentation can be generated automatically, thats really good. Now the documentation for API requires manual maintenance and is not updated properly.

+1 for this.

Regards,
Jose García


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

On Thu, Jan 14, 2016 at 12:55 PM, Francois Prunayre <fx.prunayre@anonymised.com> wrote:

Hi all, I would like your feedback on API & API documentation.

For Jeeves services we used to have the XML services doc [1] which was quite hard to maintain. With the move to Spring MVC, we have now in on place in the Java code the description of the service (instead of 2 places with Jeeves). It could make sense to try to generate the doc from the Java code.

One option could be to use springfox [2] and swagger [3] which allows to document the service in the source (with annotations [4]) and generate the API doc from that.

An experiment was made in this PR [5] and the API doc could be published by the catalog using swagger-ui eg. http://apps.titellus.net/gnmdr/swagger-ui/

Before going further, It would be nice to discuss:

  • does this sounds relevant to all ?
  • is there any other/better alternatives ?
  • and if we decide to go that direction, decide on the URL structure and make that approach mandatory for all services for future releases.

What do you think ?

Looking forward your feedback.

Francois

[1] http://geonetwork-opensource.org/manuals/2.10.4/eng/developer/xml_services/index.html
[2] http://springfox.github.io/springfox/docs/current/
[3] http://swagger.io/
[4] https://github.com/fxprunayre/core-geonetwork/blob/improvement/metadata/resources/services/src/main/java/org/fao/geonet/services/api/metadata/resources/ResourcesApi.java#L121
[5] https://github.com/geonetwork/core-geonetwork/pull/1385


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Vriendelijke groeten / Kind regards,

Jose García


Veenderweg 13
6721 WD Bennekom
The Netherlands
T: +31 (0)318 416664

Please consider the environment before printing this email.

camptocamp
INNOVATIVE SOLUTIONS
BY OPEN SOURCE EXPERTS

Florent Gravin
0479444492

Hi Florent,

···

2016-01-18 10:25 GMT+01:00 Florent Gravin <florent.gravin@anonymised.com>:

Hi,

The link http://apps.titellus.net/gnmdr/swagger-ui/# doesn’t show anything, should it show the API doc ?

Should display something like
https://cloud.githubusercontent.com/assets/1701393/12294032/acecaffa-b9f7-11e5-8644-4905a16721de.png (works for me)

I think it’s a very good idea to have an API doc auto generated, even though the annotations are quite intrusive in the code.

springfox grabs part of the information from spring annotations, but yes, quite some more annotations are needed to create complete docs.

Francois

+1

On Thu, Jan 14, 2016 at 1:49 PM, Jose Garcia <jose.garcia@anonymised.com> wrote:

Hi Francois

I don’t know other tools for this, this one looks a nice option. If documentation can be generated automatically, thats really good. Now the documentation for API requires manual maintenance and is not updated properly.

+1 for this.

Regards,
Jose García


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

camptocamp
INNOVATIVE SOLUTIONS
BY OPEN SOURCE EXPERTS

Florent Gravin
0479444492

On Thu, Jan 14, 2016 at 12:55 PM, Francois Prunayre <fx.prunayre@anonymised.com> wrote:

Hi all, I would like your feedback on API & API documentation.

For Jeeves services we used to have the XML services doc [1] which was quite hard to maintain. With the move to Spring MVC, we have now in on place in the Java code the description of the service (instead of 2 places with Jeeves). It could make sense to try to generate the doc from the Java code.

One option could be to use springfox [2] and swagger [3] which allows to document the service in the source (with annotations [4]) and generate the API doc from that.

An experiment was made in this PR [5] and the API doc could be published by the catalog using swagger-ui eg. http://apps.titellus.net/gnmdr/swagger-ui/

Before going further, It would be nice to discuss:

  • does this sounds relevant to all ?
  • is there any other/better alternatives ?
  • and if we decide to go that direction, decide on the URL structure and make that approach mandatory for all services for future releases.

What do you think ?

Looking forward your feedback.

Francois

[1] http://geonetwork-opensource.org/manuals/2.10.4/eng/developer/xml_services/index.html
[2] http://springfox.github.io/springfox/docs/current/
[3] http://swagger.io/
[4] https://github.com/fxprunayre/core-geonetwork/blob/improvement/metadata/resources/services/src/main/java/org/fao/geonet/services/api/metadata/resources/ResourcesApi.java#L121
[5] https://github.com/geonetwork/core-geonetwork/pull/1385


Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140


GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Vriendelijke groeten / Kind regards,

Jose García


Veenderweg 13
6721 WD Bennekom
The Netherlands
T: +31 (0)318 416664

Please consider the environment before printing this email.