行业网站盈利模式深圳网站制作济南

web/2025/9/29 16:13:12/文章来源:
行业网站盈利模式,深圳网站制作济南,台州企业网站设计,做色流网站要注意什么问题在本文中#xff0c;我们将讨论已存在很长时间但尚未广为人知的CUBA平台的功能- 前端SDK生成器 #xff0c;并了解它如何与CUBA的REST API插件一起使用 。 Java JavaScript –网络婚姻 仅八年前#xff0c;我们Java开发人员在我们的Web应用程序中使用JavaScript作为“第二… 在本文中我们将讨论已存在很长时间但尚未广为人知的CUBA平台的功能- 前端SDK生成器 并了解它如何与CUBA的REST API插件一起使用 。 Java JavaScript –网络婚姻 仅八年前我们Java开发人员在我们的Web应用程序中使用JavaScript作为“第二等公民”语言。 那时它的目的是通过JSFStrutsTapestry或Thymeleaf等框架向服务器端生成的网页添加一些动态。 如今我们见证了JavaScript的出现它是使用ReactVue或Angular等框架进行客户端开发的第一语言而Node.js甚至可以将其引入服务器端。 实际上我们开发的Web应用程序可能在不同的层上使用不同的语言JavaScript用于客户端UIJava用于业务逻辑处理SQL用于从数据库中获取数据Python用于数据分析等等。使用各种技术将所有这些语言组合到一个应用程序中。 最常见的示例– REST API。 基于与平台无关的HTTP协议和简单的JSON格式现在它是拼接客户端JS和服务器端Java的默认方法。 但是即使是最好的针脚也不能无缝。 API定义始终存在一个问题要调用的方法数据模型是什么以及我们是否应该将街道地址作为结构化对象还是作为字符串传递。 我们如何才能帮助我们JavaScript伙伴更快地创建代码并避免沟通不畅 Swagger是最终答案吗 你说“ 招摇 ”对。 Swagger实际上是用于设计构建记录和使用REST API的工业标准。 有许多代码生成器可帮助生成用于不同语言的客户端SDK。 CUBA Framework支持Swagger每个带有REST API附加组件的应用程序都有一个端点该端点允许下载.json或.yaml格式的Swagger文档。 您可以使用这些文件来生成JS客户端。 请考虑以下事实Swagger只是一个API文档工具。 但是前端开发人员希望在API中看到什么样的信息 “经典”方法是将业务功能映射到服务并构建定义良好的API。 然后将其公开为一组REST服务添加Swagger文档并享受。 那么为什么GraphQL赶上趋势在前端开发人员中引起轰动 并注意GraphQL在Web API世界中的份额正在增长。 到底是怎么回事 事实证明有时为前端开发人员提供更多“通用” API会更容易从而避免为可能经常更改的用例创建大量小型API。 例如在Web UI中对于您的购物篮您只需要先订购一个价格然后再订购总额的订单依此类推。GraphQL还是一个​​很好的工具可以避免过度获取和获取不足以及一次查询多个API来获取价格。复杂的数据结构。 好的看起来应用程序不仅应该公开服务还应该公开一些通用API。 这种方法使前端开发人员可以调用复杂的业务功能并为它们提供一定程度的灵活性因此如果他们仅需要UI的不同数据表示形式则他们不会请求更改API。 Swagger或GraphQL或OData都无法解决另一个问题-如果更改了某些内容该如何处理生成的客户端代码。 直接的一次性代码生成很简单但是支持却是另一回事。 在删除实体的属性后如何确保前端应用程序不会失败 因此为了加速前端开发并简化后端团队与前端团队之间的协作我们需要 公开特定于业务的API和通用API 根据后端数据模型和方法签名生成前端代码 以最小的努力和潜在的错误修改生成的代码 我们在REST中使用REST API附加组件和前端SDK生成器来面对所有这些挑战。 CUBA TypeScript SDK 在CUBA中REST API附加组件提供以下功能 数据模型上的CRUD操作 执行预定义的JPQL查询 执行服务方法 获取元数据实体视图枚举数据类型 获取当前用户权限访问实体属性特定权限 获取当前的用户信息名称语言时区等 处理文件 因此我们拥有从任何前端客户端使用该应用程序所需的一切。 所有这些API都在不拘一格的YAML或JSON文件中进行了描述因此您可以立即开始实施应用程序。 为REST API用户设置安全规则对于防止端点意外暴露给所有用户非常重要。 首先拒绝所有用户的常规REST API访问然后为需要访问所需功能的角色创建特殊权限。 但是CUBA不仅提供REST API。 您可以生成一个SDK 该SDK可以用作任何前端开发框架的基础ReactAngularVue或其他。 使用生成器您可以创建一组TypeScript类该类允许您从客户端应用程序调用CUBA API。 要生成SDK您只需运行 npm install -g cuba -platform/front-generator 然后 gen-cuba-front sdk:all 所有类都会为您创建。 您甚至可以基于ReactJS生成一个简单的UI因此您的客户将能够立即开始使用基于CUBA的应用程序。 用户界面非常基本但是使用CUBA您将立即获得所有功能包括身份验证基于角色的数据访问实体图检索等。 让我们仔细看一下SDK的功能。 资料模型 应用程序数据模型表示为TypeScript类的集合。 如果我们看一下QuickStart中使用的Session Planner应用程序则那里有一个实体 NamePattern ( %s %s|firstName,lastName ) Table (name SESSIONPLANNER_SPEAKER ) Entity (name sessionplanner_Speaker ) public class Speaker extends StandardEntity { NotNull Column (name FIRST_NAME , nullable false ) protected String firstName; Column (name LAST_NAME ) protected String lastName; Email NotNull Column (name EMAIL , nullable false , unique true ) protected String email; //Setters and getters here } 在SDK中我们将获得一个类 export class Speaker extends StandardEntity { static NAME sessionplanner_Speaker ; firstName?: string | null ; lastName?: string | null ; email?: string | null ; } 所有关联和组成都将保留因此您将能够获取实体图而不必使用多个API调用来一一获取实体。 不再需要DTO-您将获得与后端所述完全相同的数据。 商业服务 通过CUBA中的REST公开的所有服务将在SDK中具有TypeScript表示形式。 例如如果我们使用REST API公开会话服务 您将获得一个如下所示的TypeScript代码 export var restServices { sessionplanner_SessionService: { rescheduleSession: (cubaApp: CubaApp, fetchOpts?: FetchOptions) (params: sessionplanner_SessionService_rescheduleSession_params) { return cubaApp.invokeService( sessionplanner_SessionService , rescheduleSession , params, fetchOpts); } } }; 因此您只需编写以下行就可以从UI调用它 restServices.sessionplanner_SessionService.rescheduleSession(cubaREST)({session, newStartDate}).then( (result) { //Result handling }); 方便不是吗 所有常规工作都为您完成。 通用API 如果只需要为前端实现自定义逻辑则始终可以使用在核心CUBA平台REST库中定义的一组功能例如 loadEntitiesT(entityName: string, options?: EntitiesLoadOptions, fetchOptions?: FetchOptions): PromiseArraySerializedEntityT; deleteEntity(entityName: string, id: any, fetchOptions?: FetchOptions): Promise void ; 这些功能使您可以使用应用程序中的实体对CRUD操作进行细粒度的访问。 安全性仍然存在CUBA在服务器端验证所有非匿名调用并防止获取不符合用户角色的实体或属性。 cubaREST.loadEntitiesSpeaker(Speaker.NAME).then( (result { //Result handling })); 使用此通用API开发人员可以使用在通用CRUD上创建的自定义API层创建JS应用程序并将其部署到实现“ 后端前端 ”架构模式的node.js服务器。 而且用这种方法实现的API层可能不止一个我们可以为不同的客户端实现一组不同的APIReactJSNative iOS等。实际上生成的SDK是此用例的理想工具。 通用API的不好之处在于当您获取的属性超出了所需的属性或者API描述符中的属性不足时可能会导致数据获取不足或获取过多的风险。 CUBA的实体视图在后端解决了这个问题我们为前端开发人员提供了相同的选择 对于每个生成的TypeScript类我们创建反映视图的类型 export type SpeakerViewName _minimal | _local | _base ; export type SpeakerViewV extends SpeakerViewName V extends _minimal ? PickSpeaker, ? PickSpeaker, id | firstName | lastName : V extends _local ? PickSpeaker, ? PickSpeaker, id | firstName | lastName | email : V extends _base ? PickSpeaker, ? PickSpeaker, id | firstName | lastName | email : never; 因此您可以从后端获取实体并且只会获取指定的属性。 因此您无需猜测提取了哪些属性。 IDE将帮助您自动完成代码。 API更新 如前所述代码生成甚至不占开发工作的一半。 更改和支持代码是大多数工作要做的地方。 CUBA的TypeScript SDK生成器在后续运行期间分析代码跟踪更改并以增量方式对其进行更新。 如果您将TypeScript用作前端的主要开发语言TypeScript编译器将确保您不会忘记更新使用SDK的自定义代码。 结论 除了通用UI之外如果您还想为CUBA应用程序开发基于JS的客户端UIReact / React NativeAngular或Vue则可以使用REST API插件和TypeScript SDK。 无论您决定使用哪种技术都可以专注于设计或性能以提供最佳的用户体验而不必执行常规的编码任务。 而且您可以确定JS到Java的通信以及对不断变化的API的支持将是您遇到的最小问题。 翻译自: https://www.javacodegeeks.com/2019/11/cuba-platform-typescript-sdk-and-rest-api.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件公司网站模板下载专业网站设计网络服务

等保二级和三级定级标准有什么区别?定级原则和方法介绍 网络安全等级保护,简称等保,是我国为了保障信息系统的安全运行,防止信息泄露、篡改、破坏等威胁,制定的一套信息安全管理制度。根据《信息安全技术网络安全等级保…

asp.net商务网站 包括哪些文件成都网站建设公司

介绍 MVCC,全称 Multi-Version Concurrency Control,即多版本并发控制 MVCC的目的主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁。 这里的多版本指的是数据库中同时…

阿里云1m服务器可以搭建网站哪个网站专门做灵异文

文章主题:顺序表和链表详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页&#x…

网站开发都需要什么Wordpress点金

你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 小帅b把这几招传授给你 让你以后从容应对那么 接下来就是登录的常见方法无非是这两种 1、让你输入帐号和密码登录2、让你输入帐号密码验证码登录…

连云港网站关键字优化市场怎样制作企业的网站

MFC--CColorDialog的使用 2012-05-07 11:05:32| 分类: 学习mfc/c | 标签: |字号大中小 订阅 要在类中定义一个存储颜色的变量COLORREF m_color; 创建一个按钮,用来调用CColorDialog,用以改变静态文本的颜色,&a…

网站建设的主要特征网站开发 实战

接入第三方时,别人又需求,要求传入我们的信息。 // 获取 iOS 默认的 UserAgent,可以很巧妙地创建一个空的UIWebView来获取:NSString *userAgent [[[UIWebView alloc] init] stringByEvaluatingJavaScriptFromString:"navigator.userAge…

网站跳转qq链接怎么做的seo网站推广优化论文

如下图所示,为Extjs部分代码提供的网页结构:网站看上去本来是这样的前端采用ExtJS,与后台的SpringMVCSpringHibernate进行数据交互。之前分析过登录的过程,不赘述在loginController处理登录返回结果的最后,如下语句也就…

保定软件开发网站制作平安保险网站官方网址

Oracle的 Java 8 的HotSpot实现中引入的一些小但受欢迎的功能之一是在启动器的文档中添加了许多常见的HotSpot Java启动器 ( java )选项/标志。 过去,即使是对某些相当常见的HotSpot JVM选项也感兴趣的开发人员 ,不得不潜在地寻找…

做一个网站一般需要多少钱什么是网站挂马

Vscode配置STM32开发环境(替代Keil MDK/IAR) 前言 使用了很长时间的Keil5 MDK,以及最近用了一段时间的IAR for ARM,总体来说体验都不是特别的好,Keil功能还行,也不卡顿,就是开发效率、界面样式…

桐庐县住房和城乡建设局网站常州制作网站

认识webpack 面向过程开发的不便引入外部js执行顺序面向对象开发 加载多个文件耗时更多 增加了http请求 引入过多js变量来源不明 优化 使用前先import 但使用import语法需要借助工具webpack翻译为浏览器可以解析的语法安装node自动携带npmwebpack若没有全局安装 需要使用npx…

网站建设 预算wordpress的搜索结果

把接口url替换就可以用了 exportExcel () {wx.request({url: importMyApply, //这个地方是你获取二进制流的接口地址method: POST,responseType: "arraybuffer", //特别注意的是此处是请求文件流必须加上的属性,不然你导出到手机上的时候打不开&#xff…

单位做网站费用怎么记账18款禁游戏黄app入口

下载地址:网盘下载 简介编辑《DB2 SQL性能调优秘笈》是一本不可多得的DB2数据库性能调优秘笈,由拥有20余年DB2工作经验的资深数据库专家撰写,Amazon全五星评价畅销书。《DB2 SQL性能调优秘笈》不仅详尽阐述了100余条SQL语句优化的技巧和最佳实…

wordpress后台运行慢阳江做网站seo

低代码系列文章: 可视化拖拽组件库一些技术要点原理分析可视化拖拽组件库一些技术要点原理分析(二)可视化拖拽组件库一些技术要点原理分析(三)可视化拖拽组件库一些技术要点原理分析(四)低代码…

跨境网站有哪些平台网店运营流程步骤

在绘图的过程中经常需要查询和计算图形的面积,网上有不少人问这方面的问题。都市领航教育将计算面积的方法和相关命令整理一下,希望对初学者有帮助。 查询图形的面积 我们利用边界或编辑多段线命令生成了多段线和面域,不需要再使用查询面积命…

广东省网站开发建设wordpress在线问答插件

1、概念软件系统的评价分为广义评价和狭义评价。广义评价:主要是指系统从开发开始到结束的过程中,每个阶段都要进行系统评价。狭义评价:主要是指在系统建成后并投入运行之后进行全面、综合的评价。2、广义评价分类根据时间与软件系统所处的阶…

电子商务网站模版江苏做网站公司排名

先来看运行后出来的效果 它是在不停运行的一个立方体 先来看html部分的代码 <div class"rect-wrap"> <!--舞台元素&#xff0c;设置perspective&#xff0c;让其子元素获得透视效果。--><div class"container"> <!-- 容器&#…

输入网站域名跨境电商资讯网

本系列文章简介&#xff1a; 在现代的软件开发中&#xff0c;高性能和高可用性是每个开发者都追求的目标。然而&#xff0c;随着数据量和访问频率的不断增长&#xff0c;传统的数据库存储方案往往难以应对这种挑战。这就引出了一个问题&#xff1a;如何在保证数据的高效访问和持…

天津做网站联系方式在线写代码的网站

---恢复内容开始--- 准备公工作 1.去官网下载jar和war 开发工具 eclipse 开始开发:gogogo 1:建立一个可以跑起来的javaweb项目,最基本的就可以了. 2:导入commons-logging-1.0.4.jar,dwr.jar 3:在web.xml里配置一下 <?xml version"1.0" encoding"UTF-8"…

广告协会网站建设方案营销网络和网络营销的区别

转载于:https://www.cnblogs.com/569114a/p/4179164.html