问题标签 [url-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7975 浏览

url - 多语言网站 URL 的最佳实践

什么被认为是翻译网站 URL 的最佳策略?我看到经常发生的事情是:

这具有(次要)优势,即用户可以通过修改 URL 手动切换到另一种语言。缺点似乎是对于不是默认语言的每个页面,URL 都包含错误语言的 slug。我认为这会导致 SEO 处罚。

另一种方法是翻译 slugs 并选择性地省略语言标识符:

有些语言并不真正让自己变得“呆滞”,例如俄语、汉语和阿拉伯语。你最终会得到毫无意义的音译。

0 投票
1 回答
138 浏览

rest - 针对未经身份验证的请求的 RESTful URL 设计

我想提供重置用户密码的功能。这个调用显然不需要认证。首先我想到了这样的事情:

DELETE /users/{id}/password:生成一个重置令牌,通过电子邮件发送给用户

POST /users/{id}/password:需要新密码和正文中的有效重置令牌

但问题是,应用程序或网站无法向我提供用户的 ID,因为它只能要求用户提供他的电子邮件地址。

对我们的 API 有许多其他(未经身份验证的)调用,其中 ID 不存在,用户仅通过其电子邮件识别。

我们在团队中讨论了以下解决方案:

  • 将 URL 中的 ID 替换为用户的电子邮件
  • 从 URL 中剪下 ID,并为电子邮件提供查询参数

如果我必须在这两者之间进行选择,我会选择第一个,因为我认为为查询参数提供必要的东西不是 RESTful,因为它们总是代表一些可选的东西,比如过滤资源。是否有更好的方法来设计这些 URL,或者在 REST 约束方面用用户电子邮件替换 ID 就好了?

0 投票
1 回答
35 浏览

web-services - REST - 获取更新的资源

我从事一项从博客中抓取特定链接的服务。该服务调用不同的站点,这些站点提取并存储数据。

我在指定用于更新服务器上数据的 url 时遇到了麻烦,我现在使用动词 update 来拉入最新的链接。

我目前使用以下端点:

第二个网址有什么好的选择?我自己想出了一些例子。

0 投票
1 回答
100 浏览

url - URL 设计:在用户提交的项目的 URL 中使用连续编号是不好的做法吗?

我正在一个用户可以提交项目(在本例中为提案)的网站上工作。最简单的 URL 设计可能是website.com/proposal/1,website.com/proposal/2等(可能附加了一个 slug),但我在实践中从未见过这样做。

这种 URL 设计真的像我想的那样罕见吗?如果是,为什么?

0 投票
1 回答
704 浏览

rest - RESTful url - 获取新的子实体

有两种模型:实体和子实体。实体可以有许多连接的子实体(一:多关系)。

服务器上有一个返回新子实体的方法(我们称之为GetEmptySubentity)。重点是,当您想创建新的子实体时,您按下一个按钮,模型来自服务器,并预先填充了一些字段。其中一些子实体预填充的值取决于相应的实体,因此我需要在此请求中传递一个实体 ID。

那么获取空子实体的正确 url 应该像/Entity/{id}/Subentity/empty吗?或者我有什么问题?

0 投票
1 回答
1677 浏览

url - 在 url 中使用勾号(✓)的目的

0 投票
1 回答
3720 浏览

url-rewriting - 在 URL 中的何处添加 ID?

我正在使用友好的 URL,如下所示:

在友好 URL 上,我需要添加照片的 ID,但环顾四周,我看到了将 ID 添加到友好 URL 的两种方法,pre 和 post,就像这样

或者

使用一种方式有优势吗?或者这只是一个偏好/个人品味的问题?

0 投票
1 回答
73 浏览

rest - 在url中传递rest资源输出格式

AFAIK 每个资源在 REST 设计中都有一个 url。例如/user/28id 为 28 的用户的 url,/users将返回所有用户。

有一些方法可以表示资源的输出格式:

  • 传递查询参数,如format
  • 使用扩展名指定它(更改/usersurl 以/users.json获取 json 格式的用户)
  • Accept通过设置http 标头指定请求的格式(xml、json、xls、...) 。

我在网上搜索,似乎正确的方法是设置Accept标题。但是如果你想有一个http链接(由href指定)下载xls格式的用户列表,你不能!另外如果你想通过浏览器下载xls,你会遇到很多问题(你应该使用ajax所以xls应该使用ajax等下载)

如果是最好的方法,下载链接的解决方案是什么,如果不是,哪个解决方案更好?

0 投票
1 回答
58 浏览

url - URL 格式 - 对象之前或之后的操作?

我正在构建一个 Web 应用程序,但遇到了一个问题。在办公室,我们意见不一,所以我认为分享这个问题并听取最好的(你!)

在为应用程序创建 URL 时,我正在考虑使用标准格式:

对于 Clients 模块的索引,它将是:

然后,对于客户的详细信息页面,它将是:

最后,对于客户端的更新页面,它将是:

问题来了:

更改更新页面 URL 中参数的顺序怎么样?它看起来像这样:

(始终将参数保留在[client_slug]URL 的末尾。)

对我来说这更有意义,因为 URL 将始终遵循“域/模块/函数/对象”的格式,但对于这里的某些人来说,它没有。

你们怎么看?任何 SEO 影响还是只是个人选择?

0 投票
2 回答
208 浏览

api - 当存在默认值时,REST 过滤器中“匹配所有”的正确查询参数是什么?

如果一个 REST API 端点得到所有,那么过滤器就很容易了。缺少过滤器意味着“获得所有结果”。

但是如果有默认值,那么我需要一些方法来明确设置默认过滤器。继续上面的例子,如果每个人都有一个state,“已批准”或“待定”,并且如果我的系统设置为如果我没有明确指定状态,它将返回所有“已批准”:

我如何获得所有人?如果有 10 个可能的状态怎么办?还是100?

我可以想到几个方法:

  • GET /persons?state=any- 但是我永远无法使用实际状态any
  • GET /persons?state=*- 会工作,但感觉很奇怪?或者是吗?
  • GET /persons?state=- 一些 URL 解析库会抱怨一个空白的查询参数,这是否意味着“状态为空”而不是“状态是什么”?

我如何在我的 GET 中说“将状态的默认值覆盖为任何内容”?