asyncapi / shape-up-process

This repo contains pitches and the current cycle bets. More info about the Shape Up process: https://basecamp.com/shapeup
https://shapeup.asyncapi.io
11 stars 8 forks source link

Create a UI library #81

Open fmvilas opened 3 years ago

fmvilas commented 3 years ago

Description

We currently have an HTML template and a React component for rendering HTML documentation from an AsyncAPI document. We should unify both and offer a componentized version of the React component.

serut commented 2 years ago

Hello,

I wanted to create a documentation about RabbitMQ interfaces we have on the project RegardsOSS and I end up here. So far, it looks like it's not ready yet. I wish you good luck with your project ! 🚀

I just wanted to highlight you that a project like RegardsOSS (OpenSource, many microservices with REST and AMQP interfaces...) would adopt your solution if you can :

We end up with a nice UI to display our REST API, easy to maintain and versionned (each version of our software has its appropriated OpenAPI page).

I hope this usecase will help you to understand what a project like RegardsOSS, which is one usecase among many others, would need to integrate AsyncAPI : React component + server side rendering.

fmvilas commented 2 years ago

Hey @serut! Thanks a lot for your words 🙂

I think we already have almost everything you're looking for:

provide a library in Java to annotate listener in the Java / Spring project (don't know if such thing exists yet)

Not a Java developer myself but I think what you're looking for is https://github.com/asyncapi/jasyncapi.

provide a React component that supports server side rendering like Redoc

This is what you're looking for: https://github.com/asyncapi/asyncapi-react/. Actually, this issue is to improve this React component and create a whole library of components, not just the full documentation page.

a plugin to integrate the React component inside Docusaurus (example: we use the plugin Redocusaurus to integrate Redoc inside Docusaurus

I don't think something like this exists but it shouldn't be hard to create. Maybe you can contribute it.


Hope it helps!

magicmatatjahu commented 2 years ago

I agree with what Fran said, however, regarding the React component and its support for server rendering it is possible with the @next version. We have been using server rendering in html-template for over a year now and there have been no problems. You can see how to do it here - https://github.com/asyncapi/html-template/blob/master/filters/all.js#L81.

Of course, to speed up server-side and client-side rendering it is best to parse the specifications on the server side and send its form to the client. If there are any problems let us know. As for Docusaurus we accept every contribution but we do not have time for official integration because it should not be difficult.