偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

這款工具在手,無(wú)需代碼即可構(gòu)建API

譯文
開(kāi)發(fā) 開(kāi)發(fā)工具
DataTrucker 是一個(gè)開(kāi)源的無(wú)代碼/低代碼后端,使用Kubernetes模板構(gòu)建API。

[[430681]]

【51CTO.com快譯】應(yīng)用編程接口(API)好比數(shù)字化轉(zhuǎn)型的燃料,使公司能夠快速開(kāi)發(fā)應(yīng)用程序和微服務(wù)。 DataTrucker.IO是一個(gè)新的免費(fèi)的開(kāi)源(Apache 2.0)無(wú)代碼/低代碼API后端,縮減了構(gòu)建API所需的時(shí)間。

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

DataTrucker處理開(kāi)發(fā)人員需要處理新項(xiàng)目的大部分日常活動(dòng),包括:

  • 創(chuàng)建有指定業(yè)務(wù)邏輯的API端點(diǎn)(使用簡(jiǎn)單的插件)
  • 運(yùn)用標(biāo)準(zhǔn)的基于角色的訪問(wèn)控制(RBAC)
  • 運(yùn)用授權(quán)邏輯
  • 在端點(diǎn)上運(yùn)用加固措施
  • 處理日志管理
  • 連接到各種系統(tǒng)
  • 模塊化業(yè)務(wù)邏輯
  • 幾乎無(wú)需代碼,處理所有工作

安裝DataTrucker

該教程展示了如何在OpenShift上安裝DataTrucker,并為Postgres數(shù)據(jù)庫(kù)構(gòu)建API。整個(gè)過(guò)程在Kubernetes環(huán)境中大同小異。

第1步:創(chuàng)建名為T(mén)rucker的命名空間

  1. oc new-project trucker 

第2步:下載并安裝應(yīng)用程序

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

第3步:導(dǎo)航到Operators

點(diǎn)擊左側(cè)導(dǎo)航窗格中的Operators,打開(kāi)DataTrucker.IO Operator。

第4步:運(yùn)行YAML對(duì)象,從而創(chuàng)建DataTrucker配置

為數(shù)據(jù)庫(kù)后端創(chuàng)建持久卷聲明(PVC)。注意:下面提供的Postgres數(shù)據(jù)庫(kù)使用Crunchy Data容器以便開(kāi)始上手。建議對(duì)生產(chǎn)工作負(fù)載使用經(jīng)過(guò)加固的地理冗余數(shù)據(jù)庫(kù)。

1. 創(chuàng)建名為samplepvc的PVC。

2. 創(chuàng)建DatatruckerConfig對(duì)象的實(shí)例。

3. 點(diǎn)擊“創(chuàng)建”之前,確保DatatruckerConfig對(duì)象中的TempDB.enabled是True。為下面的演示設(shè)計(jì)原型需要這么做。

您可以在DataTrucker的GitLab存儲(chǔ)庫(kù)中找到示例。

  1. oc apply -f DatatruckerConfig.yaml 

配置對(duì)象Kind: DatatruckerConfig創(chuàng)建以下內(nèi)容:

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

可在DataTrucker.IO文檔的“生產(chǎn)加固”部分查看詳細(xì)信息。

  • API服務(wù)器后端配置:創(chuàng)建API服務(wù)器后端配置:
  1. API: 
  2.    name: API 
  3.    loginServer: |- 
  4.       .... 
  5.    managementServer: |- 
  6.       .... 
  7.    jobsServer: |- 
  8.       .... 

第5步:創(chuàng)建登錄和管理端點(diǎn)

創(chuàng)建一個(gè)用于獲取登錄令牌的端點(diǎn):

  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管理和登錄信息創(chuàng)建一個(gè)端點(diǎn):

  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 > 

以上幾項(xiàng)為用戶界面(UI)和管理API創(chuàng)建部署和服務(wù)端點(diǎn)。

第6步:公開(kāi)管理端點(diǎn)

公開(kāi)路由:

  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. 創(chuàng)建管理員用戶:

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

第8步:為API創(chuàng)建Postgres登錄信息

鑒于DataTrucker已安裝和配置,現(xiàn)在可以構(gòu)建API了。

為您選擇的數(shù)據(jù)庫(kù)創(chuàng)建Postgres登錄信息:

1. 展開(kāi)左邊導(dǎo)航欄。

2. 選擇“登錄信息”。

3. 打開(kāi)“Postgres登錄信息”面板。

4. 點(diǎn)擊“創(chuàng)建登錄信息”。

5. 輸入您的數(shù)據(jù)庫(kù)資料。

第9步:創(chuàng)建Postgres API

創(chuàng)建一個(gè)Flow對(duì)象,附有下列工作規(guī)格。

  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 

該規(guī)格創(chuàng)建新的微服務(wù)以托管API,該微服務(wù)在其路由上有兩個(gè)API:

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

現(xiàn)在,搜索服務(wù):

  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> 

在上述例子中,您創(chuàng)建了兩個(gè)JobDefinitions:

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

第10步:測(cè)試您的API

從登錄端點(diǎn)獲得登錄令牌:

  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" 

現(xiàn)在針對(duì)您的API使用登錄令牌:

  • 第一個(gè)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. }' 

響應(yīng):

  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.            ............. 
  • 第二個(gè)API:
  1. curl --location --request GET 'http://my-first-api-trucker.<wilcard.domain>/api/v1/jobs/postgres2' \ 
  2. --header 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'  

響應(yīng):

  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.                 " ....... 

原文標(biāo)題:Use this tool to build an API without code,作者:Gaurav Shankar

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2025-03-05 08:57:55

2020-10-10 14:57:16

代碼開(kāi)發(fā)工具

2025-03-25 13:56:17

2021-09-18 10:45:58

Windows 11Windows微軟

2024-11-04 11:02:56

2022-06-17 09:08:27

代碼Python內(nèi)置庫(kù)

2020-07-17 13:01:44

If-Else代碼編程

2009-10-15 10:04:57

無(wú)線直連

2014-10-31 14:25:39

2020-12-31 10:29:05

數(shù)據(jù)可視化可視化工具編碼

2021-03-03 21:10:24

微軟漏洞攻擊

2022-06-16 13:43:45

漏洞黑客網(wǎng)絡(luò)攻擊

2024-12-20 08:00:00

2020-11-16 08:00:00

開(kāi)發(fā)編輯器VS Code

2021-02-22 11:35:43

網(wǎng)絡(luò)數(shù)據(jù)技術(shù)

2021-04-24 21:00:22

谷歌Android 11語(yǔ)音助手

2024-04-06 15:27:56

2021-10-31 15:24:25

Windows 11Windows微軟

2020-09-18 18:18:10

代碼開(kāi)發(fā)工具

2022-08-31 15:48:26

插件開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)