Documenting REST APIs using Confluence
Asked by Tommy Holm Jakobsen:

Hello,

We need a tool documenting our public REST API (ASP.NET Web API 2.0), and I've been looking for informations about whether or not Confluence is a good choice for this task.

While it would be nice if the documentation could be autogenerated from our source code, or from a swagger specification, it's not a strict requirement.

Does anyone have any experience writing REST API documentation style in Confluence? Are there any specific templates with a fit layout, or how do you write your documentation?


Answers:
author: Aaron Knight
body: I am quite late to this question, but I stumbled across this question via search, and others may in the future as well. I recently had this issue myself, and after finding no good out of the box solutions to integrate Swagger with Confluence, I wrote a library called [Swagger Confluence](https://cloud.slkdev.net/swagger-confluence/).

If you document your REST API with Swagger as you suggested, and you would like a copy of the API documentation in Confluence, this project will automate your ability to do that. I wrote it for Java + Gradle, but I also provided a Command Line version that should be embeddable into any language / tool.

Using the library, you could make it publish updated documentation to Confluence as part of a Continuous Integration or deployment process, for example. Since it is written in Java, you would need to run the publisher with Java, but you could use it with any language as long as you have a Swagger schema.

On the linked homepage, there is a live demo that shows several available display options.

Note: For Confluence Cloud in particular, you need to make sure the REST API is enabled for your instance For stand-alone Confluence, this is enabled by default. The library works via the REST API so it will fail if the API is not available.

Full disclosure: I am the author of the library; I wrote it after having a similar problem myself. I released it as open source software in hope that it would be useful to others.

comments: author: Andreas Stenius
body: Thank you so much for sharing this. Was exactly what I was looking for.

I expect to make some tweaks, since I want to use page properties for all routes so I can have an overview page with all routes on them for brevity.

But this beats having to implement it all from scratch.


author: Nikki
body: Was exactly what I was looking for. i need to automate the process of updating API documentation with swagger in confluence page when i deployed the code into GIT. Can you suggest above approach will work for Java + Maven project.


author: Scott
body: The Server version has been approved, and is now available in the Marketplace.

comments: author: Paul LaBarbera
body: We need to render RAML, not Swagger, files. Do you have any plans to support RAML with this plugin?


author: Scott
body: Unfortunately no...the plugin uses Swagger UI, which is designed specifically for the Swagger specification only.


author: Scott
body: Still waiting on Atlassian Marketplace approval, I'm afraid.

From previous experience, approval normally takes between 1-2 weeks.

The server version of Confluence Open API Documentation was submitted on May 17; so it has been just over two weeks in pending approval status, which hopefully means it should be any day now.


author: Hamish Moffatt
body: Any news on when the Server add-on will be available?


author: Scott
body: Only swagger-ui is supported at this stage.


author: Hamish Moffatt
body: Great. Does it link to/include, or do you plan to add, the Swagger editor?


author: Scott
body: re: Confluence Open API Documentation.... a Confluence Server version has been developed and is currently awaiting Marketplace approval by Atlassian (hopefully in the next few days).

Pricing starts at $10/year (for 10 user), or $50/year for all other user tiers.


author: Hamish Moffatt
body: Me too. A few things I've found:

* Confluence Open API Documentation add-on (<https://marketplace.atlassian.com/plugins/net.oharagroup.confluence.plugins.confluence-open-api/cloud/overview>) - Confluence cloud only
* RAML renderer - <https://marketplace.atlassian.com/plugins/confluence-raml-parser/cloud/overview> - cloud only
* RAML2HTML or apidocjs + Confluence Docs to view the html within Confluence.

I'm using Confluence Server though, and I'd prefer to edit within Confluence.


author: Ali
body: I am looking for the same thing.


author: Rafael Pereira
body: Hi,

You might take a look at this plugin: [Confluence JavaDoc Macros](https://marketplace.atlassian.com/plugins/net.flosdorf.confluence.plugin.javadoc-macro)

Cheers,

Rafael Pereira

comments: author: Tommy Holm Jakobsen
body: Thanks for your post Rafael. However, that looks more like a class-reference style of documentation. Also, it's not available for Confluence Cloud. Any other ideas?


Tags: cloud

confluence-cloud