怎么让自己的网站稍微变前面点,东莞seo培训,网上销售平台有哪些app,零基础怎么学平面设计一、RESTful架构 RESTful 架构#xff08;Representational State Transfer#xff09;是一种软件架构风格#xff0c;专门用于构建基于网络的分布式系统#xff0c;尤其是在 Web 服务中。它通过利用 HTTP 协议和一组简单的操作#xff08;如 GET、POST、PUT、DELETE…一、RESTful架构 RESTful 架构Representational State Transfer是一种软件架构风格专门用于构建基于网络的分布式系统尤其是在 Web 服务中。它通过利用 HTTP 协议和一组简单的操作如 GET、POST、PUT、DELETE来进行通信以实现客户端和服务器之间的交互。RESTful 架构强调无状态、资源导向和统一接口等原则广泛应用于现代 Web 服务和 API 设计中。
1、关键特点
a、无状态 每个请求都是独立的服务器不会在请求之间保存任何状态信息。每个请求都必须包含完成该请求所需的所有信息如认证信息、数据等。这使得 RESTful 服务具有良好的可伸缩性因为服务器不需要管理会话状态。请求头的信息必须全面。
b、客户端-服务器架构 客户端和服务器是分离的客户端负责用户界面和交互服务器负责数据存储和业务逻辑处理。二者通过网络通信互不依赖因此可以独立演化和优化。
c、统一接口 RESTful 系统遵循统一的接口规则使得客户端和服务器的交互变得简洁。通常RESTful API 使用标准的 HTTP 动作如 GET、POST、PUT、DELETE来访问资源。 GET获取资源 POST创建新资源 PUT更新现有资源 DELETE删除资源
d、资源 在 RESTful 架构中资源是系统中的任何可以被表示和操作的对象通常以 URL统一资源定位符来标识。资源可以是数据如用户信息、商品或功能如计算。每个资源都有一个唯一的 URI统一资源标识符。
e、分层系统 RESTful 架构支持分层系统即服务器和客户端之间可以存在多个中间层如负载均衡器、缓存服务器、网关等。这些中间层能够透明地处理请求和响应但对客户端和服务器是透明的不会影响系统的整体功能。
2、RESTful架构优点
a、简单 RESTful 设计理念简单基于 HTTP 协议的标准操作使得客户端和服务器的通信非常直观。开发和维护相对容易。
b、灵活 由于 REST 是资源导向的客户端和服务器能够独立进化修改一方的实现不会影响到另一方。客户端只要保留调用格式服务器只要进行实现互不影响。
c、高效 RESTful 服务通常使用 JSON 或 XML 等轻量级数据格式请求头包含所有的信息这使得请求和响应较为简洁且高效适合于移动设备等带宽有限的环境。
d、可扩展 无状态的设计意味着服务器不需要存储任何会话信息这为系统提供了更好的可扩展性。负载均衡和分布式系统能够很容易地实现。
e、标准化 RESTful API 遵循 HTTP 标准支持广泛的工具和库如浏览器、代理服务器、缓存等提高了与其他系统的兼容性。
3、常见使用RESTful的框架
a、SpringBootJava Spring Boot 提供了非常强大的 REST 支持通过 RestController 和 RequestMapping 等注解来简化 RESTful API 的构建过程。
b、Django Rest Framework (Python)
c、Laravel (PHP)
4、与其他架构的对比 5、SAP RESTful
a、ABAP Restful Client ABAP作为Client端连接外部系统的Restful服务 创建一个类实现类中的方法来进行连接服务器、请求服务、对于响应的数据进行处理等。
b、ABAP Restful Server ABAP作为Server端对外提供Restful服务 用下面介绍的方法将自己在系统里面创建Gateway Service往往遵从OData协议支持 CRUD 操作CREATE、READ、UPDATE、DELETE这些服务能够通过标准 HTTP 方法GET, POST, PUT, DELETE与外部客户端进行交互。满足我们的需求。
二、OData协议 ODataOpen Data Protocol 是一种基于 REST 架构的 Web 协议主要用于查询和操作数据。它定义了一个统一的标准使得不同系统、平台和应用程序能够通过简单的 HTTP 协议进行数据访问和操作。OData 的主要目标是简化数据访问过程并提供灵活、标准化的数据接口以支持数据的查询、过滤、排序、分页、更新等功能。
在SAP中我们可以创建Gateway Service。
1、使用事务码SEGW创建Gateway Service
a、点击右上角创建按钮输入项目名称、描述选择包点击确认。 b、创建成功后自动生成了如图中的数据点击生成运行时对象按钮。 上传工作台请求出现如图中所示提示框。系统自动生成了一些类类中有对属性和方法的定义。点击确认即可。
Model Provider Class规定了当前创建的Gateway Service中包含哪些内容如数据的定义、一些方法的定义。其中 *_MPC是*_MPC_EXT的父类。一般无特殊要求不对这两个类进行修改。
Data Provider Class包含了CRUD方法具体的实现。其中 *_DPC是*_DPC_EXT的父类。我们一般就只在*_DPC_EXT中对方法进行实现一般只对他进行修改。 确认之后可以看到系统自动生成了一些类、服务等。 c、创建实体。
数据模型→Entity Type→创建。这里的数据模型还可以依据其他的东西如搜索帮助、结构体自动创建可以自己尝试。 弹出框输入实体的名称若需要该实体的集合勾选下面的选项名称是自动生成的。 点击确认。 d、对创建的实体的类型进行定义。双击图中标注的实体名称在ABAP Structure中填入表名或者结构体名全局定义的跟Name进行关联。 e、然后点击左侧Properties按照图中步骤增加字段要在ABAP Field处跟数据库中的字段进行绑定跟数据库建立联系在上一步就已经进行了这里点击ABAP Field搜索帮助出来的都是数据库的字段。这里的Is Key很关键我们后续取单条数据的时候就是通过标注了 Is Key的这个字段来取的。
字段名区分大小写采用驼峰命名。 所有增加的字段 f、在左边选中*_DPC_EXT右键选中Go to ABAP Workbench可前往编辑页面我这里不可以。所以只能自己去找。 可以看到父类信息。 在方法处我们可以看到一些已经定义的方法但是这里还没有进行方法的实现。 g、实现类中的方法。
这里我们先实现获取实体集合的方法。
查看方法的参数信息。可以看到很多参数其中Returning Data是ET_ENTITYSET我们应该将要返回的数据放到这个参数中。 在修改模式下选中类点击重定义方法按钮。 实现放在ET_ENTITYSET中 再实现获取单条数据的方法 它的参数
可以看到有个IT_KEY_TAB的参数它是放参数KEY的键值对里面有 NAME 和 VALUE两个字段可通过调试来看里面的样子。其中因为我在定义参数的时候只在stuid的Is Key处打了勾所以我的IT_KEY_TAB中的NAME只会有一个值就是 StuID。
它的Returning data是er_entity。 具体的实现如下 2、通过事务码/N/IWFND/MAINT_SERVICE创建服务。
a、首先要添加服务 b、输入系统别名点击获取服务找到自己的技术服务名称系统之前自动生成的点击添加所选服务。 弹出框这里的技术服务名称记一下。点击确认。 c、返回之后就可以看到自己的服务了前面的没问题但还是看不到的话刷新一下。 选中自己的服务点击Sap Gateway客户端。 点击执行。 d、这个页面相当于POSTMAN这种测试软件。通过接口访问我们的方法。权限够的话在右下角空白的地方会显示XML但是博主系统权限不够这里看不到信息。 e、若对于这个服务不太清楚我们删除后面参数内容点击Add URI Option选择metadata元数据。可以在Entity标签里面看到我们的实体。 f、用别人的图举例。若我们只实现了实体集合方法的话。可以看到取每个数据时候的id标签。是怎么传StuId的。 若此时我们没有维护取单个数据的方法。XML显示如下提示我们方法STUDENT_GET_ENTUTY还未实现此时我们就去对应的类*_DPC_EXT中实现对应的方法即可。 g、若要删除自己的服务。选中后先要移除系统别名再删除服务。 注
我们这里相当于编写后端代码也可以用PostMan进行测试。前端部分需要进行SAP Fiori的学习。
可以去了解CDS View的有关内容与这里的内容紧密联系。
三、总结 在SAP中RESTful 是一种基于HTTP的架构风格而 OData 是一种基于REST的协议用于创建和使用Web服务。SAP通过 Gateway服务 提供OData服务使得前端应用如SAP Fiori能够与后端系统进行数据交互。 OData支持标准的CRUD操作创建、读取、更新、删除并通过HTTP方法GET、POST、PUT、DELETE进行实现。它使得SAP系统与外部应用之间的数据交换更加简单和标准化。