簡體   English   中英

Node.js和Express Rest API創建自定義字段路由

[英]Node.js and express Rest api to create custom fields routes

我正在使用node.js並為我的其余api服務器表達框架。

我已經創建了帶有查詢參數的get路由並使用它們。

但是我想做一個像facebook graph api這樣的功能,我可以用我的api路由發送字段,例如

/me?fields=address,birthday,email,domains.limit(10){id,name,url}

我正在考慮從查詢參數中獲取字段,然后基於進行拆分,例如

const fields = req.query.fields;
let fieldsArray = fields.split(',');

但是,如何傳遞子對象屬性,並從上述示例中的域域之類的路由中檢索它們。

/ me?fields =地址,生日,電子郵件, domains.limit(10){id,name,url}

如果您使用這樣的點符號

/me?fields=address,domains.id,domains.name&dbQueryFilters=domains.limit=10

這可能意味着:

  • 我希望在響應中包含以下字段:
    • 地址
    • 域:
      • ID
      • 名稱
  • 使用這些查詢數據庫:
    • 域:
      • 限制:10

您可以添加/刪除此類查詢變量,直到它明確傳達您的API的功能,同時仍然非常基礎。 使事情簡單和基本符合您的最大利益。

在nodeJS端,您可以使用類似於flat的庫來展開查詢對象:

var fields = flat.unflatten(req.query.fields)

嘗試像這樣發送請求:

/me?fields=address,birthday,email,domains.limit%2810%29%7Bid%2Cname%2Curl%7D

您可以通過執行以下操作來獲取每個特殊字符的代碼:

escape("domains.limit(10){id,name,url}") // Returns domains.limit%2810%29%7Bid%2Cname%2Curl%7D

更多詳細信息: JavaScript escape()函數

希望這能解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM