无需代码即可构建API的工具DataTrucker.IO是一种新的免费开源(Apache2.0)无代码/低代码API后端,可减少构建API所需的时间。DataTrucker读取简单的JSON和YAML配置,生成将它们转换为API的代码。除了创建代码之外,它还在Node.js服务器上托管代码库,使其立即可供公众使用。DataTrucker处理开发人员处理新项目所需的大部分日常活动,包括:创建具有指定业务逻辑的API端点(使用简单的插件)应用标准的基于角色的访问控制(RBAC)使用授权逻辑处理对端点应用强化日志管理连接到各种系统模块化业务逻辑几乎无需代码即可处理所有工作安装DataTrucker本教程介绍如何在OpenShift上安装DataTrucker并为Postgres数据库构建API。整个过程在Kubernetes环境下类似。第1步:创建名为Trucker的命名空间ocnew-projecttrucker第2步:下载并安装应用程序DataTrucker.IO在OpenShift的OperatorHub中可用,并且可以作为Operator添加到您的集群中。第3步:导航到Operators单击左侧导航窗格中的Operators以打开DataTrucker.IOOperator。第4步:运行YAML对象,从而创建DataTrucker配置,为数据库后端创建PersistentVolumeClaim(PVC)。注意:下面提供的Postgres数据库使用CrunchyData容器来启动。建议为生产工作负载使用强化的地理冗余数据库。1.创建一个名为samplepvc的PVC。2.创建DatatruckerConfig对象的实例。3.点击“创建”前,确保DatatruckerConfig对象中的TempDB.enabled为True。这是制作下面的演示原型所必需的。您可以在DataTrucker的GitLab存储库中找到示例。ocapply-fDatatruckerConfig.yaml配置对象种类:DatatruckerConfig创建以下内容:Postgres数据库:您可以创建一个临时的非加固的CrunchyData数据库来遵循本教程,只需在DataTrucker配置中启用以下参数(对于生产工作负载,您可以加固应使用地域冗余数据库):TempDB:enabled:truepvc:samplepvc数据库配置:在生产系统中,使用地域冗余Postgres数据库:user:testuserpassword:passworddatabasename:userdbhostname:dbtype:pgport:5432加密配置:创建加密配置:API:cryptokeys:|-....可以在DataTrucker.IO文档的“生产强化”部分找到详细信息。API服务器后端配置:创建API服务器后端配置:API:name:APIloginServer:|-....managementServer:|-....jobsServer:|-....Step5:CreateLoginandManagementEndpoints创建端点用于获取登录令牌:apiVersion:datatrucker.datatrucker.io/v1kind:DatatruckerFlowmetadata:name:login-endpointspec:Type:LoginDatatruckerConfig:创建用于RBAC管理和登录信息的端点:apiVersion:datatrucker。datatrucker.io/v1kind:DatatruckerFlowmetadata:name:management-endpointspec:Type:ManagementDatatruckerConfig:以上项目为用户界面(UI)和管理API创建部署和服务端点。第6步:公开管理端点公开路由:$ocgetsvc|grependpointlogin-endpointClusterIP10.217.5.8980/TCP3m43smanagement-endpointClusterIP10.217.5.22080/TCP3m29smanagement-endpoint-uiClusterIP10.217.4.4280/TCP3m28s$ocexposesvcmanagement-endpoint-uiroute.route.openshift.io/management-endpoint-uiexposed$ocexposesvclogin-endpointroute.route.openshift.io/login-endpointexposed$ocgetroutesNAMEHOST/PORTPATHSERVICESPORTTERMINATIONWILDCARDlogin-endpointlogin-endpoint-trucker.appslogin-c-endpoint8080Nonemanagement-endpoint-uimanagement-endpoint-ui-trucker.apps-crc.testingmanagement-endpoint-ui9080None步骤7:使用网络浏览器登录UI1。创建管理员用户:2.以该管理员用户身份登录第8步:为API创建Postgres登录现在已经安装并配置了DataTrucker,是时候构建API了。要为您选择的数据库创建Postgres登录:1.展开左侧导航栏。2.选择登录信息。3.打开Postgres登录信息面板。4.点击“创建登录”。5.输入您的数据库信息。第9步:创建PostgresAPI创建一个附加了以下作业规范的Flow对象。---apiVersion:datatrucker.datatrucker.io/v1kind:DatatruckerFlowmetadata:name:my-first-apispec:DatatruckerConfig:datatruckerconfig-sampleJobDefinitions:-credentialname:dbjob_timeout:600name:postgres1restmethod:POSTscript:'select''[[userinput]]''asuserinput;'tenant:Admintype:DB-Postgresvalidations:properties:userinput:maxLength:18pattern:'^[a-z0-9]*$'type:stringtype:object-credentialname:dbjob_timeout:600name:postgres2restmethod:GETscript:select*frominformation_schema.tablestenant:Admintype:DB-PostgresType:Job这个规范创建了一个新的微服务来托管API,它的路由上有两个API:postgres1:输入当前日期和用户发送到SQL中的参数这是对用户输入变量userinput的POST请求清理输入postgres2:获取可用表的列表这是GET请求现在,搜索服务:$.ocgetsvcgrepmy-first-apimy-first-apiClusterIP10.217.5.11680/TCP45s$.ocexposesvcmy-first-apiroute.route.openshift.io/my-first-apiexposed$.ocgetrutes|grepmy-first-apimy-first-apimy-first-api-trucker.apps-crc.testingmy-first-api8080None你有网址,你可以试试URL采用以下形式:http:///api/v1/jobs/在上面的示例中,您创建了两个JobDefinition:postgres1类型为POSTpostgres2类型为GET步骤10:测试您的API从登录端点获取登录令牌:curl--location--requestPOST'http://login-endpoint-trucker./api/v1/login'\--header'Content-Type:application/json'\--data-raw'{"username":"xxx","password":"xxxxxxxx","tenant":"Admin"}'响应:{"status":true,"username":"xxx","token":"xxxxxxxxxxxx"}现在对您的API使用登录令牌:第一个API:curl--location--requestPOST'http://my-first-api-trucker./api/v1/jobs/postgres1'\--header'Authorization:Bearerxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\--header'Content-Type:application/json'\--data-raw'{"userinput":"myfirstresponse"}'响应:{"reqCompleted":true,"date":"2021-09-05T22:05:58.064Z","reqID":"req-3w","data":{"command":"SELECT","rowCount":1,"oid":null,"rows":[…………第二个API:curl--location--requestGET'http://my-first-api-trucker./api/v1/jobs/postgres2'\--header'授权:Bearerxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'响应:{“reqCompleted”:真,“日期”:“2021-09-05T22:03:58.389Z”,“reqID”:“req-35”,“数据”:{“命令”:“SELECT”,“rowCount”:185,“oid”":null,"rows":[{".......原标题:使用此工具无需代码构建API,作者:GauravShankar【翻译、合作站转载请注明原译者及出处作为.com]