API Awesome
约 5 分钟阅读
标签:资源精选
API/RPC 考虑因素
- 灵活
- 静态结构
- 动态结构
- 兼容性
- 性能
- 延时要求
- 服务对服务
- 服务对客户端
- 序列化
- 二进制
- 文本 - JSON
- 语言兼容
- 需要支持什么语言
- 自用只需考虑个别语言
- 对外则需要考虑通用
- 接口模式
- 请求响应
- 流式请求
- 流式响应
- 规范
- 生成友好
- 元数据信息完整
- 场景
- 自用 - 满足内部使用即可
- 对外 - 采用现有标准规范
- 生态
- 可观察性
- Metric
- Trace
- 网关
- 中间件感知
- 可观察性
API Gateway 考虑因素
- 管理能力
- 负责 增删改 Endpoint - vendor lockin
- 使用现有配置 - 控制能力弱
- 可观察性能力
- Metric 集成
- Trace 集成
- 内置 - 网关采集、内置显示
- 外部 - grafana、jeager、prometheus
- 控制能力
- Auth
- Threshold
- 注入自定义逻辑 - Hook
- 协议感知能力
- gRPC
- HTTP
- GraphQL
- TCP、UDP
- 平台集成能力
- Kubernetes Service、Annotatation
- Consul Service
- ETCD、ZK
- 实现模式
- 无侵入 - 直接网络拦截
- 网络层处理 - Cilium
- 侵入 - 修改代码逻辑
- 中间件 - 集成 metric、trace 等能力
- SQL Trace
- Sidecar - 按应用网络拦截
- 获取基础 metric 信息、可能能实现 trace 能力
- Agent 能代表应用身份
- 通常还能实现 E2E 加密认证
- 无侵入 - 直接网络拦截
- 元数据存储方式
- CRD
- DB - PostgreSQL、MySQL - 需要额外维护、但方便排查使用
- KV - ETCD、ZK
Design
- Google AIP - API Improvement Proposals
- cloud.google.com/apis链接cloud.google.com/apis/designAPI Design Guide · 设计流程 · 确定 APi 提供的资源类型 · 确定资源之间的关系 · 决定资源的名字格式, 基于类型和关系 · 决定资源的格式 · 为资源添加最低限度的方法 · 资源 · 集合 · 资源 · 方法 · 基本概念故事:Google API Design Guide
- Zalando RESTful API and Event Guidelines
- How to design better REST APIs
- 一致 - 字段名、接口名、授权、头处理、状态码、HTTP 方法
- ISO 8601 Date
- 区分不需要授权的接口
- 提供 GET /health
- API 添加版本 - 例如 /v1/health
- Accept API key authentication - 服务端对服务端
- 使用正确的 HTTP 状态码
- 使用正确的 HTTP 方法
- Use self-explanatory, simple names
- 使用标准的错误响应 - HTTP 状态码+对应消息体
- 创建成功返回创建内容
- PUT -> PATCH
- Be as specific as possible
- Use pagination
- Allow expanding resources
- stripe.com/blog/idempotency
- microsoft/api-guidelinesGitHubmicrosoft/api-guidelines
规范
- RFC9110RFCRFC 9110IETF Request for Comments standard document.RFC HTTP Semantics
- Financial-grade API
- Microsoft Graph
- github microsoftgraphGitHub 组织microsoftgraph
- graph-explorer
- WangNingkai/OLAINDEXGitHubWangNingkai/OLAINDEX
- www.asyncapi.com/docs/specifications/v2.3.0
- swagger.io/specification
- SchemaStore/schemastoreGitHubSchemaStore/schemastore
- JSON Schema 集合,覆盖大量 API 和配置格式。
- jsonapi.org/format
- webrpc/webrpcGitHubwebrpc/webrpc
RPC
Note
- rpc 和 serialization 主要的区别在于 服务 是否为第一公民
- 除了 gRPC, jsonrpc 其他 rpc 实现基本都是语言相关的
- 意味着 非第一方语言的支持相对较弱
- gRPC 是支持最多语言的 RPC 协议
| RPC | by | Languages | Notes |
|---|---|---|---|
| gRPC | |||
| Thrift | Java | ||
| twirp笔记twirptwitchtv/twirp · unary RPC · 支持 JSON 协议 · 使用 GRPC 定义,走 HTTP 协议 · 开发不活跃 · 官方支持语言: PHP, Ruby, Go · 参考 · SpecV7 · 不支持 streaming #3打开:/notes/service/api/twirp | TwitchTV | Go - PHP,Ruby | |
| finagleGitHubtwitter/finagle | Scala | Apache-2.0 | |
| tarpcGitHubgoogle/tarpc | Rust | ||
| iceGitHubzeroc-ice/ice | |||
| 国产 | |||
| HSF | Alibaba | Java | |
| Dubbo | Alibaba | Java | |
| go-zero笔记go-zerozeromicro/go-zero · 好未来科技 开源 RPC 框架 · 自定义的 DSL · 基于自定义的 goctl 进行生成 · 自定义 DSL 意味着 交互差、生态差、ROI 低 · 几乎是单人在开发打开:/notes/languages/go/lib/go-zero | 好未来技术 | Go | |
| kitexGitHubcloudwego/kitex | 字节跳动 | Go | |
| sofa-rpcGitHubsofastack/sofa-rpc | 蚂蚁金服 | Java | |
| tarsGitHubtarsCloud/tars | 腾讯 | C++,Java,NodeJS,PHP,Web | BSD-3 |
| brpcGitHubapache/incubator-brpc | 百度 | C++,Java | |
| motanGitHubweibocom/motan | 微博 | Java | |
| catGitHubdianping/cat | 大众点评 | Java | |
| rpcx笔记rpcxsmallnest/rpcx · 国产 RPC 框架 · smallnest/rpcx-java · Java 实现,不活跃 · 适用方便 · 设计上没有 go-micro 灵活 · 耦合了很多内容 · 通过 server.AuthFunc 设置认证处理而不是 middleware打开:/notes/languages/go/lib/rpcx | Go | ||
| erpcGitHubandeya/erpc | Go |
| Microservice | by | Tech |
|---|---|---|
| armeriaGitHubline/armeria | Line | Java |
| 国产 | ||
| kratos笔记kratosgo-kratos/kratos · MIT, Go · by Bilibili, fork Gin · 微服务框架 · Code Gen, Web, RPC, Service Governance, Integrations · ⚠️ 目前开发不太活跃打开:/notes/languages/go/lib/kratos | 哔哩哔哩 | Go,gRPC |
| go-chassisGitHubgo-chassis/go-chassis | Go | |
| go-doudouGitHubunionj-cloud/go-doudou | Go |
- JSON RPC
- gRPC
- by Google
- connect笔记Connecthttps://connect.build/ · gRPC 竞品 · 兼容 gRPC, gRPC-Web 协议 · 支持 bi-streaming - 使用 gRPC 协议 · 支持 JSON- 和 binary-encoded Protobuf打开:/notes/service/api/grpc/connect - 支持 HTTP POST ,兼容 gRPC, gRPC Web
- Avro
- json-api/json-apiGitHubjson-api/json-api
- application/vnd.api+json
- only-cliches/NoProtoGitHubonly-cliches/NoProto
- MIT, Rust
- Flexible, Fast & Compact Serialization with RPC
- twitchtv/twirp笔记twirptwitchtv/twirp · unary RPC · 支持 JSON 协议 · 使用 GRPC 定义,走 HTTP 协议 · 开发不活跃 · 官方支持语言: PHP, Ruby, Go · 参考 · SpecV7 · 不支持 streaming #3打开:/notes/service/api/twirp
- by Twitch
- finagleGitHubtwitter/finagle
- Apache-2.0, Scala
- by Twitter
- tRPCGitHubtrpc/trpctrpc/trpc · @trpc/next - NextJS · spec · https://trpc.io/docs/rpc · 参考 · jlalmes/trpc-openapi · 使用 meta 定义路由 · - · 使用 zod 定义 input 和 output笔记:trpc
- trpc-group/trpc-goGitHubtrpc-group/trpc-go
- 不是 JS 的 tRPC,是腾讯的 RPC
- Tencent/flareGitHubTencent/flare
JSON-RPC
- elpheria/rpc-websocketsGitHubelpheria/rpc-websockets
- LGPLv3, TS, JS
- JSON-RPC 2.0 over WebSockets
Serialization
- protobuf
- flatbuffer
- json
- xml
- yaml
- msgpack
- inkeliz/karmemGitHubinkeliz/karmem
- BSD-3
- faster than Google Flatbuffers and optimized for TinyGo and WASM
- betwixt-labs/bebopGitHubbetwixt-labs/bebop
- Typescript, C#, Rust, C++
- betwixt-labs/tempoGitHubbetwixt-labs/tempo
- RPC
- ASN.1 PER
- Avro, CapnProto, Protobufs, Flatbuffers
- Schema-ful, copying: Protobuf, Thrift, plenty more
- Schema-ful, zero-copy: Cap'n'proto, Flatbuffers
- Schema-less, copying: Json (binary and other variants included), XML
- Schema-less, zero-copy: Flexbuffers
- Avro is also another data serialization format. Schema-Ful,
- Arrow would be schema-ful, zero-copy
- CBOR - Concise Binary Object Representation
- 与 JSON 混用
- djkoloski/rust_serialization_benchmarkGitHubdjkoloski/rust_serialization_benchmark
- alecthomas/go_serialization_benchmarksGitHubalecthomas/go_serialization_benchmarks
Data Gateway
- Hasura
- graphile
- PostREST
- Prisma2
- stargate/stargateGitHubstargate/stargate
- Java, Apache-2.0
- urigo/graphql-meshGitHuburigo/graphql-mesh
- GraphQL Adapter
- 后端支持 GraphQL, JSON Schema, gRPC, Swagger, OpenAPI, SOAP, Postgres, Mongo, OData, Thrift, SQLite, MySQL, Neo4j
OpenAPI
- JavaScript/Typescript/NodeJS
- hey-api/openapi-tsGitHubhey-api/openapi-ts
- OpenAPI to TypeScript codegen. Generate clients, SDKs, validators
- metadevpro/openapi3-tsGitHubmetadevpro/openapi3-ts
- TS Model
- APIDevTools/swagger-parserGitHubAPIDevTools/swagger-parser
- MIT, JS
- OpenAPI 2.0, 3.0 parser/validator
- Resolves all $ref
- hey-api/openapi-tsGitHubhey-api/openapi-ts
- Codegen
- 7nohe/openapi-react-query-codegenGitHub7nohe/openapi-react-query-codegen
- OpenAPI -> React Query+@hey-api/openapi-ts
- orval-labs/orvalGitHuborval-labs/orval
- ⚠️ 项目开发不活跃
- OpenAPI -> TS
- OpenAPITools/openapi-generatorGitHubOpenAPITools/openapi-generator
- OpenAPI -> Client & Server
- drwpow/openapi-typescriptGitHubdrwpow/openapi-typescript
- OpenAPI -> Typescript
- curlconverter/curlconverterGitHubcurlconverter/curlconverter
- cURL -> Code
- glideapps/quicktypeGitHubglideapps/quicktype
- JSON, Schema, GraphQL -> type & converter
- 7nohe/openapi-react-query-codegenGitHub7nohe/openapi-react-query-codegen
- fern-api/fernGitHubfern-api/fern
- Apache-2.0, TS, JS
- OpenAPI -> SDKs & Docs
- Ruby, Python, TS, Java, Go, C#, PHP
- getkin/kin-openapiGitHubgetkin/kin-openapi
- MIT, Golang
- OpenAPIv3 for Go
- Diff
- OpenAPITools/openapi-diffGitHubOpenAPITools/openapi-diff
- Apache-2.0, Java
- tufin/oasdiffGitHubtufin/oasdiff
- Apache-2.0, Golang
- www.oasdiff.com
- Azure/openapi-diffGitHubAzure/openapi-diff
- api-diff.io
- bitbucket.org/atlassian/openapi-diff
- openapi-diffnpm 包openapi-diffNPM
- OpenAPITools/openapi-diffGitHubOpenAPITools/openapi-diff
npx -y openapi-typescript https://github.com/openai/openai-openapi/raw/master/openapi.yaml --output apis.d.ts
# @7nohe/openapi-react-query-codegen
# ==================================
# https://openapi-react-query-codegen.vercel.app/guides/introduction
# default to @hey-api/client-fetch
npm add @hey-api/client-fetch
npx --package @7nohe/openapi-react-query-codegen openapi-rq -i ./petstore.yaml依赖包@hey-api/client-fetchnpm 包@hey-api/client-fetchNPM
API Gateway
API 生命周期管理
- apache/apisixGitHubapache/apisix默认 3 etcd 会占用非常多资源,非常不划算 · apisix 依赖 etcd 容易出问题 · apisix 开发越来越不活跃,建议考虑 Kong, caddy · apache/apisix · Apache-2.0, Lua+Nginx/openresty+etcd笔记:Apache APISIX
- apache/incubator-shenyuGitHubapache/incubator-shenyu
- 可扩展、高性能、响应式的 Java API 网关
- Kong
- Tyk
- luraproject/luraGitHubluraproject/luraluraproject/lura · Apache-2.0, Go · 实现 API Gateways 的工具集 · krakend 基于 lura 的 API Gateway笔记:lura
- How to choose the right API Gateway for your platform
- api-platform/api-platformGitHubapi-platform/api-platform
- Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.
Doc
- slatedocs/slate笔记Slateslatedocs/slate · widdershins · OpenAPI -> slate markdown打开:/notes/service/api/slate
- widdershins
- OpenAPI -> slate markdown
- Redocly/redocGitHubRedocly/redoc
- swagger
- graphql
- OpenAPI
- syroegkin/swagger-markdownGitHubsyroegkin/swagger-markdown
- 只支持 v2
API IDE/Client
- usebruno/brunoGitHubusebruno/brunousebruno/bruno · MIT, JavaScript/TypeScript, Electron, React, TailwindCSS · 开源 API 测试客户端 (Open-source IDE For Exploring and Testing API)。基于本地文件系统存储 API 请求( 纯文本标记语言),天生适合 Git 版本控...笔记:Bruno
- MIT, JS, TS
- ightweight alternative to postman/insomnia
- 自定义的 bru 格式
- 通过 Desktop APP、CLI、VSC Extension
- HN HN #39653718Hacker NewsHacker News #39653718Hacker News
- vs Postman
- Hoppscotch笔记hoppscotchhoppscotch/hoppscotch 是什么? · MIT, Typescript+Vue · 类似 Postman,但是是开源产品 · 早期叫 Postwoman · 支持 HTTP, REST, WebSocket, SSE, Socket.IO, MQTT, GraphQL打开:/notes/service/api/hoppscotch
- MIT, Vue+Typescript
- 可以 Selfhost
- 支持 OpenAPI, GraphQL
- mountain-loop/yaakGitHubmountain-loop/yaak
- MIT, TypeScript, Rust, Tauri
- Kong/insomniaGitHubKong/insomnia
- MIT, JS+TS
- GraphQL, REST, WebSockets, gRPC
- 需要上传才能同步
- google/gnosticGitHubgoogle/gnostic
- EsperoTech/yaadeGitHubEsperoTech/yaade
- self-hosted, collaborative API development environment
- SoapUI
- kubeshop/tracetestGitHubkubeshop/tracetest
- mquan/api2aiGitHubmquan/api2ai
- Create API agents from OpenAPI Specs
- ShishirPatil/gorillaGitHubShishirPatil/gorilla
- API store for LLMs
- Markup
- Testing
- stepci/stepciGitHubstepci/stepci
- MPLv2, TS
- Automated API Testing and Quality Assurance
- stepci/stepciGitHubstepci/stepci
- 商业
- YMFE/yapiGitHubYMFE/yapi
- YMFE 去哪儿网
- 商业产品 apifox
- thx/rap2-delosGitHubthx/rap2-delos
- thx/RAPGitHubthx/RAP
- sx1989827/DOCleverGitHubsx1989827/DOClever
- RecipeUI/RecipeUIGitHubRecipeUI/RecipeUI
SOAP
- NodeJS
- vpulim/node-soapGitHubvpulim/node-soap
- [npm]
- loopbackio/strong-soapGitHubloopbackio/strong-soap
- [npm]
- circa10a/easy-soap-requestGitHubcirca10a/easy-soap-request
- [npm]
- vpulim/node-soapGitHubvpulim/node-soap
- Public
Produce OpenAPI
- AndrewWalsh/openapi-devtoolsGitHubAndrewWalsh/openapi-devtools
- Chrome 插件
- 在浏览时生成接口
- alufers/mitmproxy2swaggerGitHubalufers/mitmproxy2swagger
- Automagically reverse-engineer REST APIs via capturing traffic
- jonluca/har-to-openapiGitHubjonluca/har-to-openapi
参考
- public-apis/public-apisGitHubpublic-apis/public-apis
- www.postman.com/ai-engineer/generative-ai-apis/overview
- How Uber Engineering Evaluated JSON Encoding and Compression Algorithms to Put the Squeeze on Trip Data
- 2016-02
Service Discovery
- Redis
- Nacos笔记nacos非 Java 的 SDK 质量很低 · 不一定支持 auth,因此可能直接用不了 · Java SDK · grpc 不支持 https - · GrpcClient 写死 usePlaintext · #7842 · v2 无 http client打开:/notes/service/api/nacos
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- Connect笔记 · connect
https://connect.build/ · gRPC 竞品 · 兼容 gRPC, gRPC-Web 协议 · 支持 bi-streaming - 使用 gRPC 协议 · 支持 JSON- 和 binary-encoded Protobuf
- hoppscotch笔记 · Hoppscotch
hoppscotch/hoppscotch 是什么? · MIT, Typescript+Vue · 类似 Postman,但是是开源产品 · 早期叫 Postwoman · 支持 HTTP, REST, WebSocket, SSE, Socket.IO, MQTT, GraphQL
- nacos笔记 · Nacos
非 Java 的 SDK 质量很低 · 不一定支持 auth,因此可能直接用不了 · Java SDK · grpc 不支持 https - · GrpcClient 写死 usePlaintext · #7842 · v2 无 http client
- Slate笔记 · slatedocs/slate
slatedocs/slate · widdershins · OpenAPI -> slate markdown
- twirp笔记 · twitchtv/twirp
twitchtv/twirp · unary RPC · 支持 JSON 协议 · 使用 GRPC 定义,走 HTTP 协议 · 开发不活跃 · 官方支持语言: PHP, Ruby, Go · 参考 · SpecV7 · 不支持 streaming #3
参考资料
GitHub76 条
- 7nohe/openapi-react-query-codegengithub.com/7nohe/openapi-react-query-codegen
- alecthomas/go_serialization_benchmarksgithub.com/alecthomas/go_serialization_benchmarks
- alufers/mitmproxy2swaggergithub.com/alufers/mitmproxy2swagger
- andeya/erpcgithub.com/andeya/erpc
- AndrewWalsh/openapi-devtoolsgithub.com/AndrewWalsh/openapi-devtools
- apache/apisixgithub.com/apache/apisix
- apache/incubator-brpcgithub.com/apache/incubator-brpc
- apache/incubator-shenyugithub.com/apache/incubator-shenyu
- api-platform/api-platformgithub.com/api-platform/api-platform
- APIDevTools/swagger-parsergithub.com/APIDevTools/swagger-parser
- Azure/openapi-diffgithub.com/Azure/openapi-diff
- betwixt-labs/bebopgithub.com/betwixt-labs/bebop
- betwixt-labs/tempogithub.com/betwixt-labs/tempo
- circa10a/easy-soap-requestgithub.com/circa10a/easy-soap-request
- cloudwego/kitexgithub.com/cloudwego/kitex
- curlconverter/curlconvertergithub.com/curlconverter/curlconverter
- dianping/catgithub.com/dianping/cat
- djkoloski/rust_serialization_benchmarkgithub.com/djkoloski/rust_serialization_benchmark
- drwpow/openapi-typescriptgithub.com/drwpow/openapi-typescript
- elpheria/rpc-websocketsgithub.com/elpheria/rpc-websockets
- EsperoTech/yaadegithub.com/EsperoTech/yaade
- fern-api/ferngithub.com/fern-api/fern
- getkin/kin-openapigithub.com/getkin/kin-openapi
- glideapps/quicktypegithub.com/glideapps/quicktype
- go-chassis/go-chassisgithub.com/go-chassis/go-chassis
- google/gnosticgithub.com/google/gnostic
- google/tarpcgithub.com/google/tarpc
- hey-api/openapi-tsgithub.com/hey-api/openapi-ts
- inkeliz/karmemgithub.com/inkeliz/karmem
- jonluca/har-to-openapigithub.com/jonluca/har-to-openapi
- json-api/json-apigithub.com/json-api/json-api
- Kong/insomniagithub.com/Kong/insomnia
- kubeshop/tracetestgithub.com/kubeshop/tracetest
- line/armeriagithub.com/line/armeria
- loopbackio/strong-soapgithub.com/loopbackio/strong-soap
- luraproject/luragithub.com/luraproject/lura
- metadevpro/openapi3-tsgithub.com/metadevpro/openapi3-ts
- microsoft/api-guidelinesgithub.com/microsoft/api-guidelines
- microsoftgraphgithub.com/microsoftgraph
- mountain-loop/yaakgithub.com/mountain-loop/yaak
- mquan/api2aigithub.com/mquan/api2ai
- only-cliches/NoProtogithub.com/only-cliches/NoProto
- OpenAPITools/openapi-diffgithub.com/OpenAPITools/openapi-diff
- OpenAPITools/openapi-generatorgithub.com/OpenAPITools/openapi-generator
- Orange-OpenSource/hurlgithub.com/Orange-OpenSource/hurl
- orval-labs/orvalgithub.com/orval-labs/orval
- public-apis/public-apisgithub.com/public-apis/public-apis
- pyloque/captaingithub.com/pyloque/captain
- RecipeUI/RecipeUIgithub.com/RecipeUI/RecipeUI
- Redocly/redocgithub.com/Redocly/redoc
- SchemaStore/schemastoregithub.com/SchemaStore/schemastore
- ShishirPatil/gorillagithub.com/ShishirPatil/gorilla
- sofastack/sofa-rpcgithub.com/sofastack/sofa-rpc
- stargate/stargategithub.com/stargate/stargate
- stepci/stepcigithub.com/stepci/stepci
- swaggest/go-asyncapigithub.com/swaggest/go-asyncapi
- sx1989827/DOClevergithub.com/sx1989827/DOClever
- syroegkin/swagger-markdowngithub.com/syroegkin/swagger-markdown
- tarsCloud/tarsgithub.com/tarsCloud/tars
- Tencent/flaregithub.com/Tencent/flare
- thx/RAPgithub.com/thx/RAP
- thx/rap2-delosgithub.com/thx/rap2-delos
- trpc-group/trpc-gogithub.com/trpc-group/trpc-go
- trpc/trpcgithub.com/trpc/trpc
- tufin/oasdiffgithub.com/tufin/oasdiff
- twitter/finaglegithub.com/twitter/finagle
- unionj-cloud/go-doudougithub.com/unionj-cloud/go-doudou
- urigo/graphql-meshgithub.com/urigo/graphql-mesh
- usebruno/brunogithub.com/usebruno/bruno
- usebruno/bruno/discussions/360github.com/usebruno/bruno/discussions/360
- vpulim/node-soapgithub.com/vpulim/node-soap
- WangNingkai/OLAINDEXgithub.com/WangNingkai/OLAINDEX
- webrpc/webrpcgithub.com/webrpc/webrpc
- weibocom/motangithub.com/weibocom/motan
- YMFE/yapigithub.com/YMFE/yapi
- zeroc-ice/icegithub.com/zeroc-ice/ice
Hacker News1 条
- Hacker News #39653718HN #39653718
依赖包1 条
- openapi-diffwww.npmjs.com/package/openapi-diff
标准文档1 条
- RFC 9110datatracker.ietf.org/doc/html/rfc9110RFC
IETF Request for Comments standard document.
其他外链32 条
- earthquake.usgs.gov/ws/designearthquake.usgs.gov/ws/design
- waterservices.usgs.govwaterservices.usgs.gov/
- waterservices.usgs.gov/nwis/site?format=waterml,1.1&stateCd=ca&siteType=ST&siteStatus=activewaterservices.usgs.gov/nwis/site?format=waterml%2C1.1&siteStatus=active&siteType=ST&stateCd=ca
- api-diff.ioapi-diff.io/
- bitbucket.org/atlassian/openapi-diffbitbucket.org/atlassian/openapi-diff
- cloud.google.com/apis/designcloud.google.com/apis/design
- developer.microsoft.com/zh-cn/graph/graph-explorerdeveloper.microsoft.com/zh-cn/graph/graph-explorer
- docs.microsoft.com/zh-cn/graph/overviewdocs.microsoft.com/zh-cn/graph/overview
- eng.uber.com/trip-data-squeeze-json-encoding-compressioneng.uber.com/trip-data-squeeze-json-encoding-compression
- fapi.openid.netfapi.openid.net/
- google.aip.dev/generalgoogle.aip.dev/general
- graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.phpgraphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php
- graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdlgraphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl=
- hurl.devhurl.dev/
- jsonapi.org/formatjsonapi.org/format
- medium.com/event-driven-utopia/understanding-asyncapis-with-a-practical-example-ee2b4be221d8medium.com/event-driven-utopia/understanding-asyncapis-with-a-practical-example-ee2b4be221d8
- opensource.zalando.com/restful-api-guidelinesopensource.zalando.com/restful-api-guidelines
- paw.cloudpaw.cloud/
- r.bluethl.net/how-to-design-better-apisr.bluethl.net/how-to-design-better-apis
- rap2.taobao.orgrap2.taobao.org/
- stripe.com/blog/idempotencystripe.com/blog/idempotency
- swagger.io/specificationswagger.io/specification
- www.asyncapi.com/docs/specifications/v2.3.0www.asyncapi.com/docs/specifications/v2.3.0
- www.brulang.orgwww.brulang.org/
- www.eolinker.comwww.eolinker.com/
- www.getpostman.comwww.getpostman.com/
- www.jetbrains.com/help/idea/http-client-in-product-code-editor.htmlwww.jetbrains.com/help/idea/http-client-in-product-code-editor.html
- www.moesif.com/blog/technical/api-gateways/How-to-Choose-The-Right-API-Gateway-For-Your-Platform-Comparison-Of-Kong-Tyk-Apigee-And-Alternativeswww.moesif.com/blog/technical/api-gateways/How-to-Choose-The-Right-API-Gateway-For-Your-Platform-Comparison-Of-Kong-Tyk-Apigee-And-Alternatives
- www.oasdiff.comwww.oasdiff.com/
- www.postman.com/ai-engineer/generative-ai-apis/overviewwww.postman.com/ai-engineer/generative-ai-apis/overview
- www.usebruno.com/bruwww.usebruno.com/bru
- www.usebruno.com/compare/bruno-vs-postmanwww.usebruno.com/compare/bruno-vs-postman