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 best solutions below
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
- swagger ui not working for swagger version 2
- Swagger: How do you add ApiModelProperty for 3rd party code?
- Make model-schema capture element addition on an array field request
- Swagger Dropwizard 0.7 - TextArea for JSON parameter not displayed
- Swagger apis not displaying for some classes
- Document Restful API created in Node.JS
- Leverage MultipleApiVersions in Swagger with attribute versioning
- Camel-swagger and Hawt.io incompatibility
- How to display Swagger JSON file in my MEAN stack project using swagger-ui module?
- Impose max limit in Loopback
- API Manager: Set API icon in Swagger 2.0 definition?
- Jar execution using maven
- Automatically import REST APIs from GitHub / via API into API Manager?
- How to pass 1 or more arrays of 4 strings to request in swagger?
- why use neo4j swagger instead of expressjs routes / controllers and the neo4j npm package?
Related Questions in DOCUMENTATION
- How to manage and address supplementary data in R packages
- R functions' aliases documentation
- Document Restful API created in Node.JS
- JSDoc - How to document methods of a prototype object
- How to document an @IBInspectable property in Xcode
- Springfox/Swagger : Documenting HashMap object
- Modifying the grunt-ngDocs template
- Netbeans 8 auto add author to method comment
- How to properly write cross-references to external documentation with intersphinx?
- What is this error about perllocale in Perldoc?
- Human readable documentation current WebSphere configuration
- Error using local modules in documentation tests
- Which type of diagram is used for denoting Client / Server socket programming?
- PHP Docblock for child using parent constructor?
- include imported functions in module documentation
Related Questions in OPENAPI
- Swagger: How do you add ApiModelProperty for 3rd party code?
- Why `additionalProperties` is the way to represent Dictionary/Map in Swagger/OpenAPI 2.0
- Allow swagger query param to be array of strings or integers
- How to refer to an external JSON file containing response examples in Swagger?
- How to generate JSON examples from OpenAPI/Swagger model definition?
- Swagger/OpenAPI - use $ref to pass a reusable defined parameter
- Provide alternate (international) spelling for defined Swagger route
- Unable to use tags in swagger documentation
- Hello,I am using swagger 3.0.0.The operation oneOf is not working here too?Where is the mistaken?
- How to document a response comprised of a list of resources using OpenAPI
- Error generating OpenAPI doc using endpoints-framework-tools
- Swagger/OpenAPI spec for arrays of objects in URL query parameter
- Custom Security Definition for Google Cloud Endpoints OpenAPI Key Mismatch
- xml to swagger 2.0 spec conversion using golang
- In swagger, is it possible import multiple yaml files in one single file?
Related Questions in REST
- Spring RestTemplate passing the type of the response
- .net rest service with JSON string and consumed with java client
- SuiteCRM how to retrieve all account related contacts
- http status code for failed email send
- cloud foundry - 413 Request Entity Too Large
- Why does PHP add "\r\n" to an empty string?
- WCF Service not accepting multiple body parameters
- How to send Rest GET request that contains "#" value in url parameters?
- Phalcon PHP - RESTful API
- Object of class CS_REST_Wrapper_Result could not be converted to string in CAMPAIGN MONITOR
- purchase individual items and subscriptions in the same PayPal REST API transaction
- Empty Response Received on Android POST Request
- angular load more tweets onclick
- Async vs Horizontal scaling
- Responding to an Office 365 event invite via REST
Related Questions in ASYNCAPI
- WSO2 API Manager Async APIs support
- Compare two AsyncAPI specifications
- Azure Event Hubs with AsyncAPI
- Is there a way to document AVRO schema for GCP pubsub
- How do I aggregate multiple Springwolf documents into one?
- How to convert AsyncAPI schema to Avro schema
- How to refer an Avro schema from Confluent schema registry
- Confusion on AsyncAPI AMQP binding for subscribe operation
- How to document a mixture of synchronous and asynchronous APIs? Do we use AsyncAPI or OpenAPI or both?
- AsyncApi and RabbitMq
- AsyncAPI definition among multiple yaml files
- AsyncAPI specs: enum with description
- AsyncAPI enum with specific values
- socket.io and asyncapi integration
- How to define a message fixed field value in AsyncAPI
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)
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?
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.