RESTful API设计:内部交互

时间:2013-10-08 16:44:00

标签: api rest api-design interaction

简单的问题。我阅读了一堆关于API设计的文章,但没有找到答案。

API的端点应该如何相互影响?

例如,如果我有2个端点:/category/:name/messages。例如,从消息中检查类别是否存在的最佳方法是什么?

1)来自/messages处理程序的数据库查询,如:SELECT * FROM categories WHERE name ='test'?

2)从/messages处理程序到该端点的HTTP请求,如:httpclient.get('/ category / test')?

3)客户应获取所有类别,获取特定类别的ID并向/messages发送具有该类别ID的请求?

2 个答案:

答案 0 :(得分:1)

问题很简单但不是答案。有一点是肯定的,永远不要使用(2)解决方案。在调用方法时使用http客户端请求某些数据会降低API的性能和容量。

如果在/messages中创建响应需要检查是否存在特定类别,则使用(1)但不是调用SQL查询,而是调用与处理/category/test请求相同的方法来调用它本地而不是通过HTTP。

当每个端点仅负责一种类型的资源时,解决方案(3)是REST方式。缺点是它可能需要从客户端到API的更多HTTP请求。

答案 1 :(得分:1)

您应该以所有端点都在调用内部API来执行任务的方式设计应用程序。当你想在其他内部调用一个操作时,你应该使用相应的内部API而不是任何其他方法,如调用http服务。

相关问题