[英]REST Path params conflicting with resource path?
這個問題是在我使用 JAX-RS 構建后端時出現的,但這確實適用於任何 REST API。
JAX-RS 如何處理可能由於參數路徑變量而發生沖突的路徑? 假設你有
@POST
@Path('createBox/{boxName}')
foo()
@POST
@Path('createBox/small')
bar()
有人想用路徑參數調用第一個端點small
。 在這種情況下會發生什么? 如果foo()
和bar()
具有不同的參數(可能像@FormParam
),這有助於區分嗎? 如果它們在沒有 arguments 的情況下完全相同怎么辦? 行為是不確定的嗎?
參考: RESTful Java with JAX-RS 2.0, 2nd Edition by Bill Burke
"/customers/{id: .+}
<-- getCustomer"/customers/{id: .+}/address"
<-- 獲取地址優先規則
JAX-RS 規范為匹配 URI 表達式定義了嚴格的排序和優先級規則,並且基於最具體的匹配獲勝算法。
{id}
或{id: .+}
。 這種排序是按降序排列的。{id}
你的例子:
bar()
獲勝,因為根據規則 1,它具有更多文字字符
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.