[ADP-701] 屬性設計
指導原則
- 屬性必須(MUST)使用駝峰式命名法(camelCase),數字部分被視為小寫。
TIP
查看下方的設計考量。
- 屬性名稱必須(MUST)為ASCII字母數字字符、底線(_)或美元符號($)。
- 屬性不應(SHOULD NOT)使用特殊符號,如
:
[
]
.
;
%
。 - 屬性名稱應(SHOULD)清晰、簡潔且具有自描述性。
- 屬性名稱應(SHOULD)使用完整單詞而非縮寫,除非該縮寫比完整單詞更常用。
- 不應(SHOULD NOT)使用特定領域才知道的專用縮寫,見參考資料。
- bool 屬性應(SHOULD)使用"is"、"has"或"can"等前綴(例如,"isActive"、"hasPermission"、"canEdit")。
- 表示集合的屬性應使用複數名詞(例如,"users"、"items"、"orderLines")。
設計思考
JSON屬性有兩種常見的命名約定:
- 駝峰式(camelCase)
- 蛇形式(snake_case)
雖然有些公司/組織會使用蛇形式來匹配查詢參數約定(如underline_snakecase
),但這並不直觀。因此,我們選擇使用駝峰式命名JSON屬性,以保持一致性和可讀性。
TIP
💡 當屬性需要包含在URL中時,將駝峰式轉換為短橫線式(kebab-case),以符合我們的路徑命名約定。
示例
基本屬性命名
json
{
"userName": "johnDoe",
"emailAddress": "john@example.com",
"isActive": true,
"hasSubscription": false,
"orderItems": [
{
"productId": "12345",
"quantity": 2
}
]
}
查詢參數示例
http
GET /users?filter.userName=johnDoe&filter.emailAddress=john@example.com HTTP/1.1
URL路徑示例
http
GET /users HTTP/1.1
HTTP/1.1 200 OK
{
users: [
{
registeredApplications: []
}
]
}
假設我們在用戶模式中有 registeredApplications 屬性; 當我們需要在URI中應用該屬性時,需要將其轉換為 kebab-case。
http
GET /registered-applications HTTP/1.1
參考
設計參考:縮寫相關命名約定
Changelog
2024.11.04
: Add field name limit