前后端 页面url与api url 如何统一命名风格?

  • 打算把页面url,与api url做一个风格统一,查了许多大佬的文章和分析,最后常用的有rest,rpc风格,因为才接触这些风格,恐未掌握其精髓,所以下面定义用了似rest风格.希望得到大家的建议与使用经验,哪种风格更适合监控,更加适合应付生产线上碰到的一些url问题.
  • rest,用 get,post,put,delete来定义动作,围着一个地址,好处,简洁.但多语义比较乏力.
  • rpc, 完全用url定义作用.

前端页面

url-
/content/{id:123}内容详细页
/contents?order=create_time,desc内容列表页
/contents/query?create_time=2023/09/01,2023/10/01搜索
/content/{id:123}/edi内容编辑页
/content/create内空创建
/content/edit?id=123创建编辑页为同一个页面

供前端调用api - 似rpc风格

methodurl-
get/content/get单条详细,
get/content/lists?order=file,desc列表
get/content/query?type=best查询
post/content/create新建
post/content/update更新
post/content/delete删除
post/content/favorite收藏

供前端调用api - 似rest风格

methodurl-
get/contents/{id:123}单条详细
get/contents?order=file,desc列表
get/contents/query?type=best查询
post/contents新建
put/contents/{id:123}更新
delete/contents/{id:123}删除
post/contents/{id:123}/favorite收藏
阅读 1k
avatarAI BotBETA

在前后端 URL 统一命名风格的问题上,REST 和 RPC 都是有效的解决方案,选择哪种主要取决于你的具体需求和团队约定。以下是对这两种风格的简单介绍和我的个人建议。

  • REST(Representational State Transfer)风格:这是一种基于 HTTP 协议的客户端-服务器交互风格,通过使用 HTTP 方法(GET、POST、PUT、DELETE 等)和 URI 来描述和操作资源。在 REST 风格中,通常使用名词来定义资源,并使用 URI 的不同部分来表示不同的资源。例如,/users/123 表示用户 ID 为 123 的资源。
  • RPC(Remote Procedure Call)风格:RPC 是一种更直接的客户端-服务器交互风格,其中客户端调用服务器上某个特定函数或方法,并传递必要的参数。在 RPC 风格中,URL 通常表示具体的函数或方法,而不是资源。例如,/add?a=1&b=2 可能表示调用服务器上的 "add" 方法,并传递两个参数。

对于你的情况,如果你更希望 URL 能清晰地表示出具体的操作和资源类型,可能会更倾向于 REST 风格。例如,/contents/query?type=best/content/query?type=best 更清晰地表明你正在查询最佳的资源。此外,REST 风格的 URL 更简洁,也更容易为开发者和用户所理解。

然而,如果你需要更精细的方法级别的控制,或者你的服务更像是一种黑盒,可能 RPC 风格更适合。例如,如果你正在构建一个复杂的机器学习 API,可能并不需要将具体的算法暴露给用户,而是希望用户直接调用已经预先定义好的方法,那么 RPC 风格可能更好。

总的来说,选择哪种风格更多的是基于你的应用需求和设计考虑,没有绝对的好坏之分。你可以尝试两种风格看看哪种更适合你的项目和团队。

2 个回答
✓ 已被采纳
  1. 前后端页面地址统一没有什么意义。除非你是PHP的那种模版地址。现在基本都是前后端分离了,各自独立路由。
  2. restful与RPC的请求路径你是否知道他们的优缺点?

Restful已经是过时的标准了。越来越多的团队会选择简单的Restful Get-Post,或者禁止Restful风格路由的Get-Post;

大家各在各的一亩三分地上玩,你伸手过去干啥呢?
除非你是定制规则的人,否则不要去做打破规则的事。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题