info:
title: Cool Example
version: 0.1.0
channels:
userSignedUp:
address: user/signedup
messages:
userSignedUp:
description: An event describing that a user just signed up.
payload:
type: object
properties:
fullName:
type: string
email:
type: string
format: email
age:
type: integer
minimum: 18
operations:
userSignedUp:
action: send
channel:
$ref: '#/channels/userSignedUp'

事件驅動架構(EDA)

事件驅動架構(EDA)使用事件來觸發和服務之間的通信,在使用微服務構建的現代應用程序中很常見。事件是狀態更改或更新,例如將購物項目添加到電子商務網站上的購物車中。

> ##### 1. 客戶端訂閱API
>
> 此時,事件驅動API的客戶端向API注冊希望接收異步更新的意圖,這稱為訂閱。在訂閱時,客戶端通常指定API應該向其發布更新事件的接口。
>
>

2. 異步事件交付

>
> 當后臺發生了一些有趣的事情,API以事件的形式異步的將其傳遞給所有訂閱的客戶端。

AsyncAPI文檔結構

AsyncAPI文檔的結構以特定格式定義,必須遵循AsyncAPI規范,主要信息結構如下:

– info/信息字段提供關鍵的元數據,包括API的標題、版本、描述、聯系方式和許可證。該領域提供了API的全面概述,幫助開發人員、架構師和其他利益相關者快速掌握其目的和功能。作為AsyncAPI規范的強制性元素,info字段通常作為用戶瀏覽API文檔的初始參考點。

文檔結構詳細指導參考官方文檔

OpenAPI和AsyncAPI的規范比較

其它構建事件驅動 API的技術

1、Webhooks:是一個由事件消費者管理的可公開訪問的 HTTP POST 接口,事件生產者(比如 API 服務器)可以在事件發生時向 Webhook 發送事件通知。

2、WebSockets:是另一個可以用來構建事件驅動 API 的協議。與 Webhook 不同,WebSocket 協議允許服務器和客戶端之間進行持續的雙向通信,這意味著雙方都可以在需要的時候進行通信以及交換數據。

3、Server-Sent Events(SSE):是一種與 WebSockets 非常相似的通信協議,但隱含條件是只支持單向數據。SSE 允許基于瀏覽器的消費者接收從 API 服務器發送的事件通知流。

參考資料

AsyncAPI官方文檔
OpenAPI and AsyncAPI10分鐘搞懂事件驅動API
使用AsyncAPI和Springwolf記錄Spring事件驅動API

一站搜索、試用、比較全球API!
冪簡集成已收錄 4968種API!
試用API,一次比較多個渠道