是否存在可发起后获取指定API所有可用endpoint端点的请求方法?
如何查询API服务支持的全量端点列表
HTTP 标准协议中已经定义了专门用于查询资源能力的请求方法:OPTIONS 方法,刚好可以满足你的需求。
基础调用方式
你提到的自定义参数写法不符合规范,正确的 curl 调用方式如下:
curl -X OPTIONS http://www.example.com/ -v
返回结果说明
如果目标API服务实现了OPTIONS方法的响应逻辑,通常会返回两类内容:
- 响应头的
Allow字段会明确列出该路径支持的所有HTTP请求方法,示例值为Allow: GET, POST, OPTIONS, HEAD - 部分遵循OpenAPI/Swagger规范的服务,还会在响应体中返回全量可用的endpoint列表、每个接口的请求参数要求、返回值结构等完整的接口文档信息
替代方案
OPTIONS方法的响应实现不是服务端强制要求的,如果请求后没有得到预期的接口列表,可以尝试访问行业通用的接口文档入口,常见的默认路径包括:
/openapi.json/swagger.json/api-docs
注意:以上路径属于通用约定,没有统一标准,只有服务端主动做了适配才可以正常访问。另外出于安全考虑,绝大多数非公开的私有API不会暴露全量端点列表,避免被恶意探测。
内容的提问来源于stack exchange,提问作者Cubba
相关产品推荐
相关产品推荐

