云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_猫咪百度云资源_评分榜

小七 141 0

您好,

今天是一个很好的一天,可以发挥创意,为我们的OData服务添加创意功能。

这里有新的吗?那么请点击这里来了解它的全部内容。

我们将用Java创建一个ODataV4服务。我们将使用SAP云平台SDK进行服务开发。

这里有一个介绍,这里有一系列博客的概述。

实现创建操作。

实现更新操作。

实现删除操作。

关于项目创建的详细信息,您可以参阅本博客,关于前提条件

这个博客不需要增强模型。模型保持不变,它有一个实体类型和一个实体集。我们要增强的是:我们的服务提供的功能。换句话说:与数据交互的可能性。根据模型中的定义构造数据。有一个人,甚至人,我们想得到名单,或者一个人,我们想修改一个人的属性,我们想创建和删除一个人。

听起来太多了?

不是……

我认为包括这两个已经实现的方法是有意义的,只是为了在最后进行更好的测试。

与之前的博客有一些小的区别:我们需要将虚拟数据库存储为静态成员,因为我们希望创建一个条目,然后再访问它。对于这个博客,我已经从READ实现中删除了错误处理,以缩短整个代码。

请参阅本页的末尾查看完整的源代码

以便创建一个条目,我们服务的用户必须向实体集URL:

https://发出POST请求。cfapps.sap.hana文件.ondemand.com/odata/v4/DemoService/People

岗位请求需要包含请求主体。请求主体需要包含要创建的条目的数据。此外,POST请求需要指定一个头,以通知服务器数据的格式。我们稍后将谈到这一部分

我已经提到,用户在POST请求的主体中发送新"Person"的数据。在那里,它将是json格式的。

但是它将如何到达我们,服务实现者,在我们的代码中?由于您已经熟悉SDK,您希望我们可以向request参数的实例询问该信息。您还希望数据的格式与我们在READ实现中提供的数据格式完全相同。

是的,您是正确的:

一旦我们将数据作为映射,我们就可以从映射中提取值。别忘了,我们必须指定正确的属性名称。同样,我们知道定义的数据类型,所以我们可以安全地进行适当的转换。

然后,我们使用从请求主体中提取的实际值在数据库中进行实际创建。

在我们的示例中,我们只调用一个小助手方法"createPerson"。它将创建一个存储在静态成员变量中的新条目(参见本博客末尾的完整代码)

最后,创建响应对象:

正如您所期望的,框架负责构建响应,e、 g.发送正确的状态码。

完整的方法实现:

让我们继续。

我们将在最后测试所有操作。

如果用户想要修改现有数据,即更新一个现有条目,那么他会向我们的OData服务发送一个PUT(或修补)请求(这对于RESTful服务来说很常见)。URL指向需要修改的单个资源

例如https://。cfapps.sap.hana文件.ondemand.com/odata/v4/DemoService/People(2)

PUT请求有一个请求主体,包含要更改的数据。还有标题,告诉内容的格式(是json还是xml)

实现步骤类似:

1)从请求中获取所需信息:

首先我们需要知道应该修改哪个条目。此信息是请求URL的一部分:

然后我们需要知道哪些数据应该修改。这个信息在请求主体中:

2)修改数据库中的实际数据

首先我们需要从数据库中提取这个人,基于我们已经从URI中提取的id:

然后我们要做修改,基于请求主体,我们有地图

这样,我们只替换人名:

3)配置响应

从规范中我们知道,联网,PUT请求在响应中没有数据(通常),状态码是204(没有内容)。因此,我们不需要向响应对象传递任何数据。

完整的代码:

在这种情况下,用户发送删除请求,URL指向需要删除的单个资源

例如https://。cfapps.sap.hana文件.ondemand.com/odata/v4/DemoService/People(2)

没有其他。

代码没有错误处理,没有进一步解释:

构建和部署后,打开您喜欢的浏览器…对不起,我错了。这次我们需要一个REST客户端,因为对于CREATE,我们不仅需要指定URL,还需要指定请求主体和请求头。

REST客户端的示例可以是"Postman",但是可以使用任何其他工具。

所以让我重新开始:

在构建和部署之后,物联网展会,打开您首选的REST客户端。

测试创建

1)调用查询操作

例如https://。cfapps.sap.hana文件.ondemand.com/odata/v4/DemoService/People

2)选择一个条目进行阅读

例如https://。cfapps.sap.hana文件.ondemand.com/odata/v4/DemoService/People(2)

3)现在,将单个条目的json内容复制到剪贴板:

4)将REST客户端的HTTP谓词更改为POST并更改URL,使其指向实体集(如用于查询)E、 g.https://。cfapps.sap.hana文件.ondemand.com/odata/v4/DemoService/People

5)进入请求主体:单击"正文"选项卡以粘贴剪贴板的内容拆下@odata.context文件线更改值,使其成为新的

例如

6)输入请求头:

,因为我们粘贴到请求正文字段的内容是json格式的如果我们使用xml作为格式,那么我们必须相应地更改内容类型

7)运行这就是配置请求的方法。现在按"发送"按钮执行请求。

作为响应,您将得到新创建的条目(就像在请求正文中指定的一样)和状态代码201

成功!!!!

下面的截图充满了红色标记,意味着包含了很多有趣的细节: