2021-09-01-OSB学习(If-Then、Insert组件的使用)

If-Then组件的使用

在这里插入图片描述

1、我们要干什么

今天要写的代码的目的是用来判断我们请求参数里面的header里面的name是不是我们想要的值,也就是用来添加一个验证,如果是,则返回成功,不是则返回失败

2、接口开发

2.1、新建Application和目录结构

2.2、创建PL和PS

和之前的都一样,先设置号我们PL和PS的名称和目录位置
在这里插入图片描述
设置请求和响应的类型
在这里插入图片描述
创建好之后就是这个样子的
在这里插入图片描述
双击PL
在这里插入图片描述
进入PL页面就可以开始对请求进行操作啦

2.3、操作请求数据(If-Then组件)

2.3.1、拉取一个Pipeline Pair组件

这里我们直接做判断,所以不需要路由

这里我们用到了新的组件

Pipeline Pair

这个组件类似于rounting
里面可以对数据进行一系列的操作
在这里插入图片描述

2.3.2、要获取header的数据

在这里插入图片描述
好了以后就是这样的
在这里插入图片描述

如何获取header的数据

1、我们先要分析一下这个header是在哪个部分可以获取到
我们先来看一下接收请求里面的数据的目录结构是什么样的
我们可以看到,header是在inbound里面的
在这里插入图片描述
根据我们之前获取text的经历
详情可以见我的另一篇文章

另一篇文章

简单的说,我们要获取这个header,就要从inbound里面,然后一级一级往下找,也就表示我们的获取参数的方式也是一级一级深入的。
2、怎么写这个路径呢
JDeveloper给我们提供了一个快捷的方式,可以快速获取就是直接打开的时候就可以进行设置
我们需要什么就选择什么,这里我们就需要的是inbound,我们就选择inbound
然后一级一级往下就好了
在这里插入图片描述
像我这样就可以了
我们就可以看到下面的框子里面,有我们选择的路径和直接生成的描述,我们就可以直接赋值,来获取我们的数据

我们今天要用来做判断的是value值,所以我就选择了value
在这里插入图片描述在这里插入图片描述
这样我们就可以获取我们想要的目标的值了,其他的也差不多都是这样获取的。
然后我们要设置好我们的数据
在这里插入图片描述这样我们就获取到了我们想要的value的值,并且赋值给了header属性

2.3.3、拉取一个If-Then组件

选择控制跟随里面的If-Then组件
这个有俩个,两个的放置位置不一样,注意区分
在这里插入图片描述在这里插入图片描述设置判断条件
在这里插入图片描述

在这里我们就去直接判断我们上一步获取的数据的值是不是等于test
所以判断的条件就是

在这里插入图片描述
然后设置判断结果

如果if满足
则更改我们的响应为成功

这里呢,我们就需要一个replace直接修改我们响应的结果的body节点的内容就可以了

在这里插入图片描述

如果在我们输入的时候出现这样的弹窗,不要怕,忽略他就行了
在这里插入图片描述

对应的,失败也是一样的。
在这里插入图片描述
这样我们就完成了我们这个接口的开发,我们进行测试一下叭

3、接口测试

3.1、检查接口流程

和我们之前的项目一样,直接导入导出就可以了。
导入项目激活以后,要先检查我们的逻辑结对不对,然后再进行测试
在这里插入图片描述

这样的就是正确的(逻辑正确)
在这里插入图片描述

3.2、测试

下一步我们进行测试
这里和我们之前有点不太一样的地方,注意仔细看

打开我们的PL管道测试页面以后,我们可以看到传输这个操作栏

在这里插入图片描述
我们直接把他展开来,就可以看到这个数据里面的
在这里插入图片描述
有一个默认的标头,我们先不管他
在这里插入图片描述
像我这样填入数据,然后点击添加
就可以看到在之前的默认的一个标头下面,多了一个我们自己写的标头
在这里插入图片描述
我们进行测试

在这里插入图片描述

发现报错,这是为什么呢,我们看一下我们的调用跟踪
在这里插入图片描述
我们可以看到我们这里已经添加好header节点了
但是我们自己写的pl的stage1里面并没有执行,
预计是我们的数据写错了
我们去检查一下

经过一系列检查之后,确定了这个东西从获取数据就开始出错,证明是我们获取这个header的时候就错了,一看还真是
在这里插入图片描述
把他改成我们自己的属性
我这里就改成了head
在这里插入图片描述

当然if语句也要修改哦
在这里插入图片描述

3.3、再次测试

在这里插入图片描述
再来看我们的调用跟踪里面的内容
在这里插入图片描述
可以看到我们数据也是添加好了,然后我们的只也是能获取到的。
这里我们是把默认生成的那个header删掉了
我们再次测试一下

3.4、测试不删除之前默认生成的标头的结果

本次添加的请求的标头
在这里插入图片描述
在这里插入图片描述
结果是失败的
这是为什么呢
我们一下我们的调用跟踪里面的内容
在这里插入图片描述
那如果我们想获取第二个header里面的值,我们要怎么做呢
我们之前要获取第一个数据是采用这样的方式来获取的:

$body/*[1]
在这里插入图片描述
现在也是一样的,由于我们添加的标头里面默认有一个数据
那我们就直接获取第二个header的value
也就是要修改获取数据时的值

在这里插入图片描述

在这里插入图片描述

修改它,再次进行测试

在这里插入图片描述
成功了
我们也可以看一下我们的调用跟踪里面的内容
在这里插入图片描述
获取了第二个的,然后条件满足最后成功
由此可见,我们这样写的话,我们想要哪一个,我们就写几就可以了。

4、使用postman进行接口测试

这里就直接使用GET请求就可以了

地址:ip+端口号+PS的端口地址
ip:虚拟机的ip
端口号:一般是8011
PS的端口地址:去看自己PL对应的PS的端口的地址
在这里插入图片描述
测试
记得输入标头的数据
在这里插入图片描述
显示成功,接口开发完成

Insert组件的使用

1、我们要干什么

将发送的json请求转换成xml,然后再插入到我们的请求头里面,然后调用上面的if-then的PL,然后最后输出成功或者失败。

2、接口开发

2.1、创建PL和PS

在这里插入图片描述

2.2、对请求数据进行操作

这里的只是用来做一个json->xml 的格式转换,之前的文章里面也说到过了,就不过多进行描述了,就直接放图了,如果之前的操作不熟悉的,可以去查看我前面的文章。
xml和json格式的数据相互转换.

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面的这一步会报错,下面有解决方法
在这里插入图片描述
prefix:tran
uri:http://www.bea.com/wli/sb/transports
在这里插入图片描述
上面的做完了,我们就写完了一半了
下面进入主题

2.3、Insert组件的使用

我们直接拉取一个insert组件,然后对他的数据进行设置
在这里插入图片描述
这里我们可以看到三个选项
这三个按照你自己的需求设置就可以了
注意:这里要写上一级的位置,像我这个,要插入header,就要写header的父标签才可以
在这里插入图片描述

3、接口测试

3.1、检查接口流程

在这里插入图片描述

3.2、测试

我们这里需要把请求里面写一个json格式的数据

{"username":"test"}

在这里插入图片描述
然后进行测试

在这里插入图片描述
失败了
我们看一下调用跟踪
可以看到我们这里插入数据的时候,不会默认生成一个数据,只会插入我们写到的数据
因此我们之前的设置的获取第二个数据也就无效了。
在这里插入图片描述
所以我们只需要把之前的修改成默认就可以了
这里我们就直接在网页进行修改了。

打开我们调用的PL
然后直接设置
在这里插入图片描述
然后直接把[2]删掉
就OK了
再次测试就可以了
在这里插入图片描述
再去查看我们的调用跟踪,可以看到这个是正常的,如果有地方不一样,就去检查一下自己的代码是不是写错了。
在这里插入图片描述

4、使用postman进行接口测试

这里要改成POST请求进行测试

在这里插入图片描述
成功了,表示接口开发也完成了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值