成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

這款工具在手,無需代碼即可構建API

譯文
開發 開發工具
DataTrucker 是一個開源的無代碼/低代碼后端,使用Kubernetes模板構建API。

[[430681]]

【51CTO.com快譯】應用編程接口(API)好比數字化轉型的燃料,使公司能夠快速開發應用程序和微服務。 DataTrucker.IO是一個新的免費的開源(Apache 2.0)無代碼/低代碼API后端,縮減了構建API所需的時間。

DataTrucker讀取簡單的JSON和YAML配置,生成將其轉換為API的代碼。除了創建代碼外,它還在Node.js服務器上托管代碼庫,使其立即可供公眾使用。

DataTrucker處理開發人員需要處理新項目的大部分日常活動,包括:

  • 創建有指定業務邏輯的API端點(使用簡單的插件)
  • 運用標準的基于角色的訪問控制(RBAC)
  • 運用授權邏輯
  • 在端點上運用加固措施
  • 處理日志管理
  • 連接到各種系統
  • 模塊化業務邏輯
  • 幾乎無需代碼,處理所有工作

安裝DataTrucker

該教程展示了如何在OpenShift上安裝DataTrucker,并為Postgres數據庫構建API。整個過程在Kubernetes環境中大同小異。

第1步:創建名為Trucker的命名空間

  1. oc new-project trucker 

第2步:下載并安裝應用程序

DataTrucker.IO在OpenShift的OperatorHub中可以找到,可以作為Operator添加到您的集群中。

第3步:導航到Operators

點擊左側導航窗格中的Operators,打開DataTrucker.IO Operator。

第4步:運行YAML對象,從而創建DataTrucker配置

為數據庫后端創建持久卷聲明(PVC)。注意:下面提供的Postgres數據庫使用Crunchy Data容器以便開始上手。建議對生產工作負載使用經過加固的地理冗余數據庫。

1. 創建名為samplepvc的PVC。

2. 創建DatatruckerConfig對象的實例。

3. 點擊“創建”之前,確保DatatruckerConfig對象中的TempDB.enabled是True。為下面的演示設計原型需要這么做。

您可以在DataTrucker的GitLab存儲庫中找到示例。

  1. oc apply -f DatatruckerConfig.yaml 

配置對象Kind: DatatruckerConfig創建以下內容:

  • Postgres數據庫:您可以創建臨時的非加固Crunchy Data數據庫以遵循該教程,只需在DataTrucker配置中啟用下列參數(對生產工作負載而言,您應該使用加固的地理冗余數據庫):
  1. TempDB: 
  2.    enabled: true 
  3.    pvc: samplepvc 
  • 數據庫配置:在生產系統中,使用地理冗余的Postgres數據庫:
  1. user: testuser 
  2.   passwordpassword 
  3.   databasename: userdb 
  4.   hostname: db 
  5.   type: pg 
  6.   port: 5432 
  • 加密配置:創建加密配置:
  1. API: 
  2.    cryptokeys: |- 
  3.       .... 

可在DataTrucker.IO文檔的“生產加固”部分查看詳細信息。

  • API服務器后端配置:創建API服務器后端配置:
  1. API: 
  2.    name: API 
  3.    loginServer: |- 
  4.       .... 
  5.    managementServer: |- 
  6.       .... 
  7.    jobsServer: |- 
  8.       .... 

第5步:創建登錄和管理端點

創建一個用于獲取登錄令牌的端點:

  1. apiVersion: datatrucker.datatrucker.io/v1 
  2. kind: DatatruckerFlow 
  3. metadata: 
  4.   name: login-endpoint 
  5. spec: 
  6.   Type: Login   
  7.   DatatruckerConfig: < the name of the config object created in step 4 > 

為RBAC管理和登錄信息創建一個端點:

  1. apiVersion: datatrucker.datatrucker.io/v1 
  2. kind: DatatruckerFlow 
  3. metadata: 
  4.   name: management-endpoint 
  5. spec:   
  6.   Type: Management   
  7.   DatatruckerConfig: < the name of the config object created in step 4 > 

以上幾項為用戶界面(UI)和管理API創建部署和服務端點。

第6步:公開管理端點

公開路由:

  1. $ oc get svc | grep endpoint 
  2. login-endpoint                                            ClusterIP   10.217.5.89    <none>        80/TCP     3m43s 
  3. management-endpoint                                       ClusterIP   10.217.5.220   <none>        80/TCP     3m29s 
  4. management-endpoint-ui                                    ClusterIP   10.217.4.42    <none>        80/TCP     3m28s 
  5.  
  6.  
  7. $ oc expose svc management-endpoint-ui 
  8. route.route.openshift.io/management-endpoint-ui exposed 
  9.  
  10. $ oc expose svc login-endpoint 
  11. route.route.openshift.io/login-endpoint exposed 
  12.  
  13.  
  14. $ oc get routes       
  15. NAME                     HOST/PORT                                         PATH   SERVICES                 PORT   TERMINATION   WILDCARD 
  16. login-endpoint           login-endpoint-trucker.apps-crc.testing                  login-endpoint           8080                 None 
  17. management-endpoint-ui   management-endpoint-ui-trucker.apps-crc.testing          management-endpoint-ui   9080                 None 

第7步:使用Web瀏覽器登錄到UI

1. 創建管理員用戶:

2. 以該管理員用戶的身份登錄

第8步:為API創建Postgres登錄信息

鑒于DataTrucker已安裝和配置,現在可以構建API了。

為您選擇的數據庫創建Postgres登錄信息:

1. 展開左邊導航欄。

2. 選擇“登錄信息”。

3. 打開“Postgres登錄信息”面板。

4. 點擊“創建登錄信息”。

5. 輸入您的數據庫資料。

第9步:創建Postgres API

創建一個Flow對象,附有下列工作規格。

  1. --- 
  2. apiVersion: datatrucker.datatrucker.io/v1 
  3. kind: DatatruckerFlow 
  4. metadata: 
  5.   name: my-first-api 
  6. spec: 
  7.   DatatruckerConfig: datatruckerconfig-sample 
  8.   JobDefinitions: 
  9.     - credentialname: db   < cred name from step 8 > 
  10.       job_timeout: 600 
  11.       name: postgres1 
  12.       restmethod: POST 
  13.       script: 'select ''[[userinput]]'' as userinput; '  < query you want to execute
  14.       tenant: Admin 
  15.       type: DB-Postgres 
  16.       validations: 
  17.         properties: 
  18.           userinput: 
  19.             maxLength: 18 
  20.             pattern: '^[a-z0-9]*$' 
  21.             type: string 
  22.         type: object 
  23.     - credentialname: db < cred name from step 8 > 
  24.       job_timeout: 600 
  25.       name: postgres2 
  26.       restmethod: GET 
  27.       script: select * from information_schema.tables < query you want to execute
  28.       tenant: Admin 
  29.       type: DB-Postgres 
  30.   Type: Job 

該規格創建新的微服務以托管API,該微服務在其路由上有兩個API:

  • postgres1:
  1. 將當前日期和用戶發送的參數錄入到SQL中
  2. 這是POST請求
  3. 為用戶輸入變量userinput凈化輸入
  • postgres2:
  1. 獲得可用表格列表
  2. 這是GET請求

現在,搜索服務:

  1. $. oc get svc | grep my-first-api  
  2. my-first-api                                              ClusterIP   10.217.5.116   <none>        80/TCP     45s 
  3.  
  4. $. oc expose svc my-first-api 
  5. route.route.openshift.io/my-first-api exposed 
  6.  
  7. $. oc get routes  | grep my-first-api 
  8. my-first-api             my-first-api-trucker.apps-crc.testing                    my-first-api             8080                 None 

您有了URL,可以試一下。

URL在下列表單中:

  1. http://<your api route>/api/v1/jobs/<name of the JobDefinitions defined in the yaml> 

在上述例子中,您創建了兩個JobDefinitions:

  • 類型POST的postgres1
  • 類型GET的postgres2

第10步:測試您的API

從登錄端點獲得登錄令牌:

  1. curl --location --request POST 'http://login-endpoint-trucker.<wilcard.domain>/api/v1/login' \ 
  2. --header 'Content-Type: application/json' \ 
  3. --data-raw '{ 
  4.  "username""xxx"
  5.  "password""xxxxxxxx"
  6.  "tenant""Admin" 
  7. }' 
  8.  
  9. Response: 
  10.     "status"true
  11.     "username""xxx"
  12.     "token""xxxxxxxxxxxx" 

現在針對您的API使用登錄令牌:

  • 第一個API:
  1. curl --location --request POST 'http://my-first-api-trucker.<wilcard.domain>/api/v1/jobs/postgres1' \ 
  2. --header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ 
  3. --header 'Content-Type: application/json' \ 
  4. --data-raw '{ 
  5.     "userinput""myfirstresponse" 
  6. }' 

響應:

  1.     "reqCompleted"true
  2.     "date""2021-09-05T22:05:58.064Z"
  3.     "reqID""req-3w"
  4.     "data": { 
  5.         "command""SELECT"
  6.         "rowCount": 1, 
  7.         "oid"null
  8.         "rows": [ 
  9.            ............. 
  • 第二個API:
  1. curl --location --request GET 'http://my-first-api-trucker.<wilcard.domain>/api/v1/jobs/postgres2' \ 
  2. --header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'  

響應:

  1.     "reqCompleted"true
  2.     "date""2021-09-05T22:03:58.389Z"
  3.     "reqID""req-35"
  4.     "data": { 
  5.         "command""SELECT"
  6.         "rowCount": 185, 
  7.         "oid"null
  8.         "rows": [ 
  9.             { 
  10.                 " ....... 

原文標題:Use this tool to build an API without code,作者:Gaurav Shankar

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2025-03-05 08:57:55

2020-10-10 14:57:16

代碼開發工具

2025-03-25 13:56:17

2024-11-04 11:02:56

2022-06-17 09:08:27

代碼Python內置庫

2020-07-17 13:01:44

If-Else代碼編程

2021-09-18 10:45:58

Windows 11Windows微軟

2009-10-15 10:04:57

無線直連

2014-10-31 14:25:39

2020-12-31 10:29:05

數據可視化可視化工具編碼

2021-03-03 21:10:24

微軟漏洞攻擊

2020-11-16 08:00:00

開發編輯器VS Code

2022-06-16 13:43:45

漏洞黑客網絡攻擊

2024-12-20 08:00:00

2021-02-22 11:35:43

網絡數據技術

2020-09-18 18:18:10

代碼開發工具

2021-04-24 21:00:22

谷歌Android 11語音助手

2024-04-06 15:27:56

2022-08-31 15:48:26

插件開發

2021-10-31 15:24:25

Windows 11Windows微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕在线 | 中文字幕一区二区在线观看 | 久久91精品国产 | 久久99精品久久久久久国产越南 | 久久精品国内 | 午夜视频免费在线 | 成人在线精品 | 成人精品一区二区三区中文字幕 | 欧美lesbianxxxxhd视频社区 | 黄色大片在线 | 久久精品国产亚洲 | 久久久久国产一区二区三区四区 | 久久久99精品免费观看 | 国产1区2区| 亚洲大片 | 国产精品69久久久久水密桃 | 久久日本| 久久精品二区 | 草草视频在线播放 | 国产高清在线 | 97成人免费 | 最新日韩在线 | 精品一二三区视频 | 一区二区三区不卡视频 | 国产精品区二区三区日本 | 亚洲欧美一区二区在线观看 | 国产一区二区精品在线 | 久久美国| 亚洲国产精品一区二区久久 | 成人一区在线观看 | 日韩精品一区在线 | 日韩电影在线一区 | 亚洲毛片在线观看 | 国产精品特级毛片一区二区三区 | 一区二区三区亚洲精品国 | 精品国产一区二区国模嫣然 | 一级全黄少妇性色生活免费看 | 日韩中文一区二区三区 | av中文字幕在线 | 国产福利在线看 | 综合久久99|