多平台统一管理软件接口,如何实现多平台统一管理软件接口
564
2023-03-02
本文目录一览:
含义是:在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。
目的是:项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发。项目维护中或者项目人员更迭,方便后期人员查看、维护。
规范是:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
应用程序接口又称为应用编程接口,是一组定义、程序及协议的集合,通过 API接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。
API同时也是一种中间件,为各种不同平台提供数据共享。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
3.3.6.1 海洋标量场数据绑定接口规范
海洋标量场数据绑定接口是为了向海洋标量场时空过程可视化功能提供数据的辅助程序接口,包括点过程可视化服务接口、线过程可视化服务接口和面过程可视化服务接口。下面是三个接口的定义规范。
(1)点过程可视化接口规范
public bool Identify(string sServerName,string sServerType,double dX,double dY,Ar-rayList iLayerIDArrayList,out ArrayList
sLayerNameArrayList,out ArrayList sValueArrayList)
sServerName: 服务名,string 类型。
sServerType: 服务类型,string 类型。
dX: 选择位置 X 坐标,double 类型。
dY: 选择位置 Y 坐标,double 类型。
iLayerIDArrayList: 图层 ID 起始位置,ArrayList 类型。
sLayerNameArrayList: 返回的图层名列表,ArrayList 类型。
sValueArrayList: 返回的图层的数据,ArrayList 类型。
(2)线过程可视化服务接口规范
Public bool GetProfiles(string sServerName,string sServerType,ArrayList
dXArrayList,ArrayList dYArrayList,ArrayList iLayerIDArrayList,out ArrayList sLayer-NameArrayList,out ArrayList sValueStringArrayList)
sServerName: 服务名,string 类型;
sServerType: 服务类型,string 类型。
dXArrayList: X 坐标数组,数组列表类型。
dYArrayList: Y 坐标数组,数组列表类型。
ILayerIDArrayList: 层 ID 数组列表,数组列表类型。
sLayerNameArrayList: 返回参数,层名数组列表,数组列表类型。
sValueStringArrayList: 返回参数,值数组列表,数组列表类型。
(3)面过程可视化服务接口规范
public string GetImageURL(string ServiceURL,double [] arrl,int FromId,int ToId,out string str)
ServiceURL: 服务的地址,string 类型。
arrl: 选择范围坐标,double 数组。
FromId: 图层起始 ID,int 类型。
ToId: 图层终止 ID,int 类型。
Str: 输出参数,返回 URL 地址,string 类型。
3.3.6.2 ARGO 信息服务绑定接口规范
为了进行 ARGO 数据的获取和图形表达,需要开发数据获取、曲线生成的函数接口,其接口规范如下:
(1)ARGO 数据获取接口规范
Public DataSet GetArgoNumbCycleDataSet()
本接口无参数,返回制定 ARGO 数据内容。
(2)通过属性生成 Argo 数据曲线图接口规范
Public String CreatGraphByAttribute(float x,float y,string graphType)
X∶X 坐标值,float 类型。
Y∶Y 坐标值,float 类型。
graphType: 图标类型,string 类型。
(3)通过空间位置生成 Argo 数据曲线图接口规范
Public ArrayList CreatGraphByCoordinate(String plateformNumb, string circleNumb,string graphType)
plateformNumb: 平台编号,String 类型。
circleNumb: 圆半径,string 类型。
graphType: 图标类型。
3.3.6.3 海洋矢量场数据服务绑定规范
矢量场数据包括风场数据和流场数据,接口函数包括获得矢量场数据列表、获得矢量场数据内容、生成矢量场图形、获得点选处矢量场属性和序列化显示。下面分别介绍其接口规范。
(1)获得流场数据文件列表接口规范
Public ArrayList Get_CurrentsList()
本接口无参数,返回所有流场数据文件列表。
(2)获得海流文件中数据内容
Public ArrayList Get_CurrentsData(string fileName)
fileName: 流场数据文件名,string 类型。
本接口函数返回文件中的数据值。
(3)生成流场要素接口规范
Public String DrawCurrents(object []fileDataList )
fileDataList: 流场文件数据值。
本接口函数生成流场矢量图。
(4)获得点选处海流数据属性接口规范
Public ArrayList Get_Property(float x,float y )
X: 鼠标点选处 X 坐标,float 类型。
Y: 鼠标点选处 Y 坐标,float 类型。
本接口函数的返回值为点击处的属性值。
(5)序列化显示接口规范
Public ArrayList SeriesShow(String []fileName )
fileName: 流场数据文件名,string 类型。
本接口规范返回剖面文件序列。
(6)获得风场数据文件列表接口规范
Public ArrayList Get_WindsList()
本接口无参数,返回所有风场数据文件列表。
(7)获得风流文件中数据内容
Public ArrayList Get_WindsData(string fileName)
fileName: 风场数据文件名,string 类型。
本接口函数返回文件中的数据值。
(8)生成风场要素接口规范
Public String DrawWinds(object []fileDataList )
fileDataList: 风场文件数据值。
本接口函数生成风场矢量图。
(9)获得点选处风场数据属性接口规范
Public ArrayList Get_Property(float x,float y)
X: 鼠标点选处 X 坐标,float 类型。
Y: 鼠标点选处 Y 坐标,float 类型。
本接口函数的返回值为点击处的属性值。
(10)获得风场玫瑰图
Public String Get_RoseGraph(String time float MaxX,float MaxY float MinX,float MinY)
Time: 数据时间,string 类型。
MaxX: 最大 X 坐标值,float 类型。
MaxY: 最大 Y 坐标值,float 类型。
MinX: 最大 X 坐标值,float 类型。
MinY: 最大 Y 坐标值,float 类型。
返回风玫瑰图的 URL。
(11)序列化显示接口规范
Public ArrayList SeriesShow(String []fileName )
fileName: 流场数据文件名,string 类型。
本接口规范返回剖面文件序列。
UserService
这种写法每次都要在controller层传入BindingResult,很不方便,接下来用自动抛出异常的方式去进一步优化
这时候后端已经引发了 MethodArgumentNotValidException 异常,并且前端收到的数据如下
后端直接将整个错误对象相关信息都响应给前端了,这是因为虽然引发了异常,但是我们没有去对其进行处理,所以走了SpringBoot默认的异常处理流程,现在开始进行全局异常处理
自定义异常的好处
还能在全局异常处理中处理Exception异常,这样无论遇到什么Exception都能够统一返回给前端,不过这种一般建议是在项目上线之前才这样做,开发的时候为了方便调试还是不太建议这样做
写一个新的api,返回的类型不再是ResultVo,而是直接返回实体类对象,这样就会走beforeBodyWrite方法去包装,然后真正返回给前端的还是ResultVO,这样做的目的就是可以省去我们自己手动封装数据到ResultVO的过程
效果
上面实体类中,id字段没有加上自定义注解,所以会走统一的VALIDATE_FAILED封装的响应体,而其他字段都加上了自定义注解,所以遇到字段校验出错时就会用自定义注解中的errcode和errmsg去封装返回
关于接口开发规范和接口设计标准的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 接口开发规范的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口设计标准、接口开发规范的信息别忘了在本站进行查找喔。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~