在烧瓶路线上分隔多个单词的约定是啥?
Posted
技术标签:
【中文标题】在烧瓶路线上分隔多个单词的约定是啥?【英文标题】:What is the convention for separating multiple words on a flask route?在烧瓶路线上分隔多个单词的约定是什么? 【发布时间】:2021-01-09 17:29:54 【问题描述】:我有这两条路线:
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
本身就是一条路线,这没有任何意义。找不到任何关于它的文档。
【问题讨论】:
您的问题在我看来更像是一个 API 设计问题,而不是与 Flask 相关的约定。话虽如此,请看一下这个问题=> ***.com/questions/10302179/…。它似乎解决了更大的设计问题。 【参考方案1】:@nitul 是对的,一般来说它是关于 API 设计的,但是 连字符 通常用于 url,即使它不是标准或官方的,但被视为最佳实践,seo 友好且 url 更优雅,漂亮。
另一方面,我想提请您注意 url 中的一些特殊/额外参数,例如 filters、sorting 和 pagination,将它们用作额外参数?type=TYPE
以及您的基本/规范网址/<string:stage>/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")
然后根据额外的参数,例如:?type=TYPE
在 url 中返回适当的对象集,这样你的 API 就更紧凑(避免冗余)、可维护和可扩展。
另外,由于您使用的是Flask
,并且根据您的需要(如果有),请考虑自定义 URL 转换器(本主题 https://exploreflask.com/en/latest/views.html#custom-converters 将帮助您)
【讨论】:
以上是关于在烧瓶路线上分隔多个单词的约定是啥?的主要内容,如果未能解决你的问题,请参考以下文章