【技术实现步骤摘要】
一种基于Laravel框架的RESTfulAPI代码的自动生成方法
本专利技术涉及计算机软件领域,尤其涉及一种基于Laravel框架的RESTfulAPI代码的自动生成方法。
技术介绍
Laravel是一个由TaylorOtwell所创建的开源PHPWeb框架,旨在实现Web软件的MVC架构,Laravel的特色包含:支持用户身份验证和许可,具有模块化的包系统且有专属的包库,提供连接许多种类的关连式数据库的方式,提供工具来协助应用程序的部署和维持,并且发展出许多语法糖,是PHP应用开发领域中较为流行的开发框架。表现层状态转换(英语:RepresentationalStateTransfer,缩写:REST)是RoyThomasFielding博士于2000年在他的博士论文中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。表现层状态转换是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。符合或兼容于这种架构风格(简称为REST或RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。RESTful架构是目前流行的互联网软件架构,它结构清晰、符合标准、易于理解、扩展方便,得到越来越多网站以及应用的采用。但是在Laravel框架中编写RESTfulAPI,针对每个HTTP请求方法都需要单独定义一个路由独立编写代码,并且随着业务变动客户端对数据需求会发 ...
【技术保护点】
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路由方法的执行函数分别注册为增、删、改、查功能 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。