【问题标题】: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 相关的约定。话虽如此,请看一下这个问题=> stackoverflow.com/questions/10302179/…。它似乎解决了更大的设计问题。

标签: python flask


【解决方案1】:

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

另一方面,我想提请您注意 url 中的一些特殊/额外参数,例如 filterssortingpagination,将它们用作额外参数?type=TYPE 以及您的基本/规范网址/&lt;string:stage&gt;/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 将帮助您)

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多