说我有一个要点集合:GET /points
。点数据在体内发送(在现实生活中,这不是点,而是很大的东西,超过100 KB)。
一个点可以定义为一个JSON(例如{ "x": "0", "y": "1" }
和一个二进制数据(例如00 00 00 00 01 00 00 00
),但是它们本质上都定义了相同的东西,最终存储在同一存储中,并且可以以相同的格式退役。
定义POST
API有哪些选择?
/points/json
和/points/bin
。分离的端点可以获得良好的Swagger文档(它们对主体数据的描述不同),但是它们看起来与GET
API不同:GET /points
GET /points/{id}
DELETE /points/{id}
POST /points/json
POST /points/bin
/points?type=json
和/points?type=bin
进行区分。看起来更好,但是我很难正确地指定路由并记录此端点。你们对这个问题有任何看法吗?
已更新
Content-Type
标头。这将保留相同的URL,因此听起来很合理。但是Swashbuckle / Swagger文档又如何呢?如何告诉它生成基于Content-Type
标头值的文档?