一种基于Laravel框架的RESTful API代码的自动生成方法技术

技术编号:28558052 阅读:13 留言:0更新日期:2021-05-25 17:52
本发明专利技术涉及一种基于Laravel框架的RESTful API代码的自动生成方法,通过创建资源控制器并且该资源控制器继承了RESTful控制器基类,使得该资源控制器能够拥有RESTful控制器基类的方法组件,且将Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件,并且将Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,开发者仅需创建该资源控制器并配置数据模型映射,该数据模型就自动拥有了增、删、改、查数据接口,当业务变动使得客户端对数据需求产生变化时,仅需对该该资源控制器的配置参数进行调整,无需另外编写代码实现该调整,提高了开发效率,且代码运行过程中不容易出现错误,代码高度内聚,便于后期维护。

【技术实现步骤摘要】
一种基于Laravel框架的RESTfulAPI代码的自动生成方法
本专利技术涉及计算机软件领域,尤其涉及一种基于Laravel框架的RESTfulAPI代码的自动生成方法。
技术介绍
Laravel是一个由TaylorOtwell所创建的开源PHPWeb框架,旨在实现Web软件的MVC架构,Laravel的特色包含:支持用户身份验证和许可,具有模块化的包系统且有专属的包库,提供连接许多种类的关连式数据库的方式,提供工具来协助应用程序的部署和维持,并且发展出许多语法糖,是PHP应用开发领域中较为流行的开发框架。表现层状态转换(英语:RepresentationalStateTransfer,缩写:REST)是RoyThomasFielding博士于2000年在他的博士论文中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。表现层状态转换是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。符合或兼容于这种架构风格(简称为REST或RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。RESTful架构是目前流行的互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,得到越来越多网站以及应用的采用。但是在Laravel框架中编写RESTfulAPI,针对每个HTTP请求方法都需要单独定义一个路由独立编写代码,并且随着业务变动客户端对数据需求会发生变化,进而后端必须改动代码以满足客户端数据需求的变化,如果数据涉及到连表关联数据的查询,后端必须新增加一个接口实现该查询,另外,如果需要对客户端请求参数进行校验,需要对每个接口分别编写校验规则代码。除此之外,对数据的分页、排序、筛选等需求都必须特殊处理,因此会导致接口开发人员工作繁琐、开发人员工作量增加的问题发生,使得在Laravel框架中后端接口的开发效率较低,且代码使用过程中容易出现错误和不易于维护的问题。
技术实现思路
(一)要解决的技术问题为了解决现有技术的上述问题,本专利技术提供一种基于Laravel框架的RESTfulAPI代码的自动生成方法,能够提高开发效率。(二)技术方案为了达到上述目的,本专利技术采用的技术方案为:一种基于Laravel框架的RESTfulAPI代码的自动生成方法,包括:S1、创建一个资源控制器,所述资源控制器继承于RESTful控制器基类,所述RESTful控制器基类包含路由注册组件,在所述资源控制器中设置一个数据模型映射,将所述资源控制器的资源命名空间路径放入资源注册器的资源列表中;S2、在Laravel框架的引导过程中,载入所述资源注册器,所述资源注册器中包含Laravel路由管理器;在所述资源注册器中,实例化所述Laravel路由管理器得到Laravel路由管理器实例,所述Laravel路由管理器实例中包含有POST、DELETE、PATCH、GET路由方法的执行函数,载入并遍历所述资源注册器的资源列表,根据所述资源命名空间路径实例化所述资源控制器得到资源控制器实例,并调用所述资源控制器实例中的路由注册组件,将所述Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件;S3、在所述路由注册组件中,将所述Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,将所述增、删、改、查功能的的方法组件的接口路由地址设置为所述资源控制器的的资源命名空间路径。(三)有益效果本专利技术的有益效果是:通过创建资源控制器并且该资源控制器继承了RESTful控制器基类,使得该资源控制器能够拥有RESTful控制器基类的方法组件,且将Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件,并且将Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,开发者仅需创建该资源控制器并配置数据模型映射,该数据模型就自动拥有了增、删、改、查数据接口,当业务变动使得客户端对数据需求产生变化时,仅需对该该资源控制器的配置参数进行调整,无需另外编写代码实现该调整,提高了开发效率,且代码运行过程中不容易出现错误,代码高度内聚,便于后期维护。附图说明图1为本专利技术的基于Laravel框架的RESTfulAPI代码的自动生成方法的流程图。具体实施方式为了更好的解释本专利技术,以便于理解,下面结合附图,通过具体实施方式,对本专利技术作详细描述。请参照图1所示,一种基于Laravel框架的RESTfulAPI代码的自动生成方法,包括:S1、创建一个资源控制器,所述资源控制器继承于RESTful控制器基类,所述RESTful控制器基类包含路由注册组件,在所述资源控制器中设置一个数据模型映射,将所述资源控制器的资源命名空间路径放入资源注册器的资源列表中;S2、在Laravel框架的引导过程中,载入所述资源注册器,所述资源注册器中包含Laravel路由管理器;在所述资源注册器中,实例化所述Laravel路由管理器得到Laravel路由管理器实例,所述Laravel路由管理器实例中包含有POST、DELETE、PATCH、GET路由方法的执行函数,载入并遍历所述资源注册器的资源列表,根据所述资源命名空间路径实例化所述资源控制器得到资源控制器实例,并调用所述资源控制器实例中的路由注册组件,将所述Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件;S3、在所述路由注册组件中,将所述Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,将所述增、删、改、查功能的的方法组件的接口路由地址设置为所述资源控制器的的资源命名空间路径。从上述描述可知,本专利技术的有益效果在于:通过创建资源控制器并且该资源控制器继承了RESTful控制器基类,使得该资源控制器能够拥有RESTful控制器基类的方法组件,且将Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件,并且将Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,开发者仅需创建该资源控制器并配置数据模型映射,该数据模型就自动拥有了增、删、改、查数据接口,当业务变动使得客户端对数据需求产生变化时,仅需对该该资源控制器的配置参数进行调整,无需另外编写代码实现该调整,提高了开发效率,且代码运行过程中不容易出现错误,代码高度内聚,便于后期维护。进一步地,所述S1中在所述资源控制器中设置一个数据模型映射之后还包括:在所述资源控制器分别配置参数校验声明、关联数据声明、排除关本文档来自技高网
...

【技术保护点】
1.一种基于Laravel框架的RESTful API代码的自动生成方法,其特征在于,包括:/nS1、创建一个资源控制器,所述资源控制器继承于RESTful控制器基类,所述RESTful控制器基类包含路由注册组件,在所述资源控制器中设置一个数据模型映射,将所述资源控制器的资源命名空间路径放入资源注册器的资源列表中;/nS2、在Laravel框架的引导过程中,载入所述资源注册器,所述资源注册器中包含Laravel路由管理器;/n在所述资源注册器中,实例化所述Laravel路由管理器得到Laravel路由管理器实例,所述Laravel路由管理器实例中包含有POST、DELETE、PATCH、GET路由方法的执行函数,载入并遍历所述资源注册器的资源列表,根据所述资源命名空间路径实例化所述资源控制器得到资源控制器实例,并调用所述资源控制器实例中的路由注册组件,将所述Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件;/nS3、在所述路由注册组件中,将所述Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,将所述增、删、改、查功能的的方法组件的接口路由地址设置为所述资源控制器的的资源命名空间路径。/n...

【技术特征摘要】
1.一种基于Laravel框架的RESTfulAPI代码的自动生成方法,其特征在于,包括:
S1、创建一个资源控制器,所述资源控制器继承于RESTful控制器基类,所述RESTful控制器基类包含路由注册组件,在所述资源控制器中设置一个数据模型映射,将所述资源控制器的资源命名空间路径放入资源注册器的资源列表中;
S2、在Laravel框架的引导过程中,载入所述资源注册器,所述资源注册器中包含Laravel路由管理器;
在所述资源注册器中,实例化所述Laravel路由管理器得到Laravel路由管理器实例,所述Laravel路由管理器实例中包含有POST、DELETE、PATCH、GET路由方法的执行函数,载入并遍历所述资源注册器的资源列表,根据所述资源命名空间路径实例化所述资源控制器得到资源控制器实例,并调用所述资源控制器实例中的路由注册组件,将所述Laravel路由管理器实例作为参数传入所述资源控制器实例的路由注册组件;
S3、在所述路由注册组件中,将所述Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件,将所述增、删、改、查功能的的方法组件的接口路由地址设置为所述资源控制器的的资源命名空间路径。


2.根据权利要求1所述的基于Laravel的RESTfulAPI代码的自动生成方法,其特征在于,所述S1中在所述资源控制器中设置一个数据模型映射之后还包括:在所述资源控制器分别配置参数校验声明、关联数据声明、排除关联数据声明、方法白名单声明、模型作用域声明和排除模型作用域声明;
所述S3中将所述Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件包括:根据所述资源控制器中的方法白名单声明的要求,将所述Laravel路由管理器实例中的POST、DELETE、PATCH、GET路由方法的执行函数分别注册为增、删、改、查功能的的方法组件;
所述数据模型映射,用于绑定所述资源控制器对应的数据模型;
所述参数校验声明,用于定义客户端传入参数验证规则;
所述关联数据声明,用于接口查询时需要同时连表查询的关联模型;
所述排除关联数据声明,用于接口查询时,排除模型内定义的关联数据模型查询;
所述方法白名单声明,用于过滤RESTful资源控制器支持的HTTP方法,所述HTTP方法默认为GET方法;
所述模型作用域声明,用于客户端在接口查询时,需要对控制器所对应的数据模型进行作用域应用时使用;
所述排除模型作用域声明,用于客户端在接口查询时,需要对控制器所对应的数据模型进行作用域排除时使用。


3.根据权利要求2所述的基于Laravel的RESTfulAPI代码的自动生成方法,其特征在于,所述RESTful控制器基类中包含以下方法组件:
模型对象获取组件,用于根据客户端提交的数据模型对象ID,获取所述资源控制器的数据模型映射对应的数据模型对象,如果有获取到则返回所述数据模型对象,没有获取到则抛出HTTP404错误;
路由注册器,用于所述资源注册器调用,将增、删、改、查功能的方法组件注册到所述路由管理器中;
参数校验器,用于验证客户端所提交的参数是否符合所述的参数校验声明;
字段选择器,用于客户端提交的字段参数范围,指定模型返回的字段范围;
过滤器,用于客户端提交的过滤参数,对参查询数据进行过滤;
关联数据构造器,用于根据所述资源控制器中的所述关联数据声明和排除关联数据声明的关联数据构造关联数据查询;
作用域构造器,用于根据所述资源控制器中声明的所述模型作用域声明和排除模型作用域声明的作用域构造查询作用域。
排序器,用于根据客户端提交的排序字段,对查询数据进行排序;
分页器,用于根据客户端提交的分页大小和分页数参数,对查询数据进行分页;
详情查询构造器,用于构造查询模型单条数据过程;
列表查询构造器,用于构造查询模型列表数据过程;
增、删、改、查功能的方法组件,分别在客户端使用POST、DELETE、PATCH、GET的HTTP方法时调用。


4.根据权利要求3所述的基于Laravel的RESTfulAPI代码的自动生成方法,其特征在于,所述参数校验声明包括创建参数校验声明和更新参数校验声明,分别在创建...

【专利技术属性】
技术研发人员:李智唐光宇闫乃永卢学明张友春林凡
申请(专利权)人:宝宝巴士股份有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1