当前位置: 首页 > 知识库问答 >
问题:

在烧瓶路由上分隔多个单词的惯例是什么?

闾丘选
2023-03-14

我有这两条路线:

api.add_resource(X, "/<string:stage>/api/sales/by-type")
api.add_resource(Y, "/<string:stage>/api/sales/filters/by-type")

应该是/by_type还是/by-type/by/type会很奇怪,因为/by本身就是一条路由,这没有任何意义。找不到任何关于它的文件。

共有1个答案

子车高歌
2023-03-14

@nitul是对的,这是关于API设计的一般,但连字符在URL中是常用的,即使它不是标准或官方的,但被视为最佳实践,seo友好,URL更优雅和漂亮。

另一方面,我想提请您注意url中的一些特殊/额外参数,如过滤器、排序和分页,将它们作为额外参数?type=type与基本/规范url/ /api/sales 一起使用会更有意义,因为您提到的两条路由在末尾逻辑上是相同的。看看这篇好文章https://www.moesif.com/blog/technical/api-design/rest-api-design-filtering-sorting-and-pagination/,它用好的模式阐述了更多的主题。你只需要一条路:

api.add_resource(X, "/<string:stage>/api/sales")

然后根据url中的额外参数(例如:?type=type)返回适当的对象集,这样您的API就更加紧凑(避免了冗余),并且易于维护和扩展。

另外,由于您正在使用flask并且根据您的需要(如果有的话),考虑自定义URL转换器(本主题https://explorreflask.com/en/latest/views.html#custom-converters将帮助您)

 类似资料:
  • 问题内容: 我正在用React构建Flask应用程序,但最终遇到了路由问题。 后端负责成为API,因此某些路由如下所示: 以及通往React的主要路线: 我在React应用程序中使用react-router,一切正常,react- router带我进入,并获得了渲染视图,但是当我刷新页面时,Flask应用程序会处理此调用,并且会出错。 最好的解决方案是什么?我正在考虑重定向所有未调用的调用,这是不

  • 我们正在对CITY、ST、ZIP形式的邮政编码进行丢失验证。这些可以跨越国家,因此以下所有内容都是有效的: > 宾夕法尼亚州匹兹堡,15020 安大略省汉密尔顿市L8E 4B3 我想验证的是,我们有三个逗号分隔的单词(空格可以)。所有这些都是有效的: foo、bar、baz 然而,这些将是无效的,因为它们没有两个逗号和三个单词: foo, bar 嘘,酒吧,巴兹,砰 foo,酒吧, foo, ba

  • 所以,我有以下路线在烧瓶: 关于导航到http://127.0.0.1:5000/menu-card/ChIJAxXhIUMUrjsR5QOqVsQjCCI,我得到了正确的响应。 但是,我尝试如下更改URL模式: 关于导航到http://127.0.0.1:5000/menu-card?id=ChIJAxXhIUMUrjsR5QOqVsQjCCI我现在得到一个404错误。我做错了什么?

  • 我想验证由一些分隔符分隔的单词输入。本例中的分隔符是“|”符号,前后用空格分隔 到目前为止,我只听到了第一个单词,下面是rejex: 如何用空格和分隔符分隔单词或数字?PS仍在学习教程。任何帮助都将不胜感激 为了进一步澄清,我正在为上面的dojo dijit小部件寻找正则表达式,以正确验证输入。

  • 对sed来说有点新。我制作了一个脚本来替换文件中的各种文本。例如,文件

  • 问题内容: 我想做的是一项相当普通的任务,但我在网络上找不到任何参考。我的文字带有标点符号,我想要一个单词列表。 应该 但是只能使用一个参数,因此在用空格分割后,所有单词都带有标点符号。有任何想法吗? 问题答案: 正则表达式合理的情况: