Consider an application consisting of multiple end-points, some synchronous and others are asynchronous following the event-driven architecture with Kafka as the message broker, communicating with other microservices. What should be the standard for documentation of these APIs? Do we need to create the separate documentation pages for asynchronous(using AsyncAPI) and synchronous APIs(using OpenAPI), or is there any way to combine the two in a single document? I've read online that AsyncAPI is the documentation standard for asynchronous APIs, and OpenAPI should be used for normal synchronous Rest APIs but could not find any relevant links on what to use if we have a mixture of different kind of APIs in a single application. I'd appreciate any help/guidance on this.
How to document a mixture of synchronous and asynchronous APIs? Do we use AsyncAPI or OpenAPI or both?
1.8k views Asked by Viren At
2
There are 2 answers
0
Lukasz Gornicki
On
For now, you can as @kris13 wrote in his answer, reuse JSON Schemas between AsyncAPI and OpenAPI documents. AsyncAPI parser has a plugin that can parse OpenAPI schemas. AsyncAPI supports multiple schemaFormats.
Future is more bright, have a look at https://github.com/asyncapi/bindings/issues/2 and involve in a discussion about HTTP Binding where we could enable reuse of OpenAPI's Path Item Object so you could reuse even more OpenAPI in AsyncAPI.
Related Questions in SWAGGER
- How to assign label to nested Basemodel in pydantic with fastapi
- Springdoc Whitelabel Error Page with Spring V3
- How to prefix all the URLs of a swagger with L5-Swagger?
- I can't see the parameters to filter my query in Swagger on web api netCore
- How to specify the client ID and redirect URI in Swagger OAuth2.0 configuration for Swagger UI?
- Springdoc with a generic @ApiReponse
- Nswag client doesn't correctly generate Method for DELETE endpoint
- Enable/Disable SwaggerUI in ASP.NET Web API Based on Environment
- How to hide type of model in swagger with springfox?
- Mark OpenAPI schema enum value as deprecated
- Swift Swagger-codegen. String to be sanitized is null
- Show "thrown error"/"console.log" at the swagger ui
- How can we extract swagger apis and Request from swagger and store in excel or list the automate it by using Rest Assured
- How to configure Swashbuckle to ignore property on model ?The properties of these object properties also need to be ignored
- Customizing Springdocs/Swagger UI paths in Spring Boot 3
Related Questions in DOCUMENTATION
- steps to create a web app with backend and database and web
- fastapi docs , Pydantic BaseModel, request example missing
- doxyqml not documenting qml files properly
- how to document QML files inside C++ project?
- MPDF HTML Fill page
- Is it possible with Doxygen to have the detailed descriptions inline instead of in a separate section of the page?
- Doxygen cref doesn't work without full namespace (even for classes in same namespace)
- Use of Interactive API documentation with OpenAPI GitLab
- PrestaShop metrics definition
- Need documentation or API reference to create job posts on Hirist platform
- how can i Automate documentation in my CI/CD pipeline or through my project workflow (java) ? documentation generator for the whole process?
- How can I document the structure of my code?
- How add XML2CSV processor to Keboola components?
- Error in the Nextjs' dashboard tutor project
- Show quick documentation near Code Completion window for selected word in VS Code
Related Questions in OPENAPI
- How to assign label to nested Basemodel in pydantic with fastapi
- Export OpenAPI to native/plain javascript
- How to specify the client ID and redirect URI in Swagger OAuth2.0 configuration for Swagger UI?
- Mark OpenAPI schema enum value as deprecated
- Show "thrown error"/"console.log" at the swagger ui
- How can I remove the OPTIONAL value from a schema in Docusaurus using an OpenApi file?
- Only some generated OpenApi Angular service functions are not defined when executing in browser
- How to reference a model in a POST request body schema according to OpenAPI?
- Few enums have constants values in common, causing OpenAPI Generator to fail. How to put some of the model classes, types in different packages?
- Unmarshalling json into protobuf having oneof type
- Use of Interactive API documentation with OpenAPI GitLab
- Express server with OpenAPI specification with ES6+ on Windows doesn't accept nested routes
- Cannot use different request body options in the generated api from OpenAPI Spec?
- Type generation in openapi-fetch
- Using micronaut-openapi @ApiResponse @ExampleObject value with JSON string, attribute with null values are ommitted on openapi.yml
Related Questions in REST
- Query parameter works fine with fastapi application when tested locally but not working when the FastAPI application is deployed on AWS lambda
- Add an http GET/POST entry point to a Django with channels websocket
- Difficulty creating a data pipeline with Fabric Datafactory using REST
- Flutter connection to a local api
- Accessing REST API Status Codes using Azure Data Factory Copy Activity (or similar)?
- Mass Resource deletion in REST
- why when I check endpoint /tasks, an error always appears "error : invalid token" even though I have entered the appropriate token that I got
- How to prevent users from creating custom client apps?
- How to create a REST API with .NET Framework?
- Efficiently Handling Large Number of API Calls with Delphi 10.4 and OmniThreadLibrary
- Put Request throwing 401 [no body] Unauthorized
- Converting img src data to octet-stream
- Implementing Email Verification and Notification System in a Full-Stack Application with React Frontend and Node Backend
- Micronaut - Add Controller from external library
- Moving Template or OVA to Datastore using vCenter API
Related Questions in ASYNCAPI
- How to check the asyncapi/studio version when on https://studio.asyncapi.com/
- How to convert an avro schema into an asyncapi programatically?
- Getting a wrong response after sending a REST API POST request in VBA
- Java spring boot generator inheritance AsyncApi generator
- Reuse (generated) entities between OpenAPI and AsyncAPI
- Asyncapi generate throws Version "3.0.0" is not supported. Please use "2.6.0"
- Add a table under the description or summary tag in AsyncAPI yaml file
- How do I aggregate multiple Springwolf documents into one?
- How to refer an Avro schema from Confluent schema registry
- How to convert AsyncAPI schema to Avro schema
- Is there a way to document AVRO schema for GCP pubsub
- Azure Event Hubs with AsyncAPI
- AsyncApi how to generate POJO classes based on AsyncAPI yaml file using Java and maven
- Springwolf http://localhost:8080/springwolf/docs page 404
- How to create payload in AsyncApi?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
In my company we use both OpenAPI and AsyncAPI with shared
Schemaobjects.Schema Objectcould be moved to a separate file(s) and then used by refLink from both API spec.Be aware, standards of JSON Schema Specification in OpenAPI and AsyncAPI are different, e.g. approach to define
discriminatoris different.