IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> CPI中通过$batch处理http请求 -> 正文阅读

[网络协议]CPI中通过$batch处理http请求

?1:指定请求endpoint为/$batch

2:构建请求内容:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import groovy.json.*
import java.util.UUID;

import static groovy.json.JsonOutput.*

// @Grab('com.google.code.gson:gson:2.8+')
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

class BatchRequest {
    def requests
}

class Request{
    String id 
    String method
    String url
    def headers
    def body 
}

class IFInstanceStruc {
    String EndDateTime
    int TotalNum
    int SuccessNum
    int ErrorNum
    int Status
}

class HttpHeader {
    @SerializedName("content-type")
    String contenttype 
}

def HttpHeader getCommonHttpHeader(){
    return new HttpHeader(
        contenttype : "application/json"
    );
}

def Message processData(Message message) {
    //Body
    def requests = [];
    
    def body = message.getBody(String);
    def logBody = new JsonSlurper().parseText(body);
    
    BatchRequest batchRequest = new BatchRequest(
        requests:[]
    );
    
    
    // IFInstance PATCH
    IFInstanceStruc ifInstanceBody = new IFInstanceStruc(
        EndDateTime : logBody.EndDateTime,
        TotalNum : logBody.TotalNum,
        SuccessNum : logBody.SuccessNum,
        ErrorNum : logBody.ErrorNum,
        Status : logBody.Status
    );
    // def ifInstanceBodyJSON = new Gson().toJson(ifInstanceBody)
    
    Request ifInstanceRequest = new Request(
        id : UUID.randomUUID().toString(),
        method: "PATCH",
        url : "/IFInstance(" + logBody.ID + ")",
        headers : getCommonHttpHeader(),
        body : ifInstanceBody
    )
    requests.add(ifInstanceRequest);
    
    
    // IFItem PATCH
    logBody.toItems.each {
        Request ifItemRequest = new Request(
            id: UUID.randomUUID().toString(),
            method: "POST",
            url: "/IFInstance(" + logBody.ID + ")/toItems",
            headers: getCommonHttpHeader(),
            body: it
        )
        requests.add(ifItemRequest)
    }
    
    // Add to Batch Request
    batchRequest.requests = requests;
    
    def gson = new Gson().toJson(batchRequest)
    message.setBody(gson);
    
    //设置 http header
    message.setHeader("Content-Type", "application/json")
    message.setHeader("Accept", "*/*")
    return message;
}

?生成请求报文格式如下:

{
    "requests": [
        {
            "id": "c9863906-5889-433d-96df-93551b56bcb3",
            "method": "PATCH",
            "url": "/IFInstance(4c38271a-17ba-462e-803e-0475b37a5145)",
            "headers": {
                "content-type": "application/json"
            },
            "body": {
                "EndDateTime": "2021-12-01T06:01:25.621Z",
                "TotalNum": 0,
                "SuccessNum": 0,
                "ErrorNum": 0,
                "Status": 1
            }
        },
        {
            "id": "101c7ebf-a5b2-47ca-8fdb-62fb2db0e98f",
            "method": "POST",
            "url": "/IFInstance(4c38271a-17ba-462e-803e-0475b37a5145)/toItems",
            "headers": {
                "content-type": "application/json"
            },
            "body": {
                "Result": "S",
                "Message": "成功処理 購買情報マスタ登録されました",
                "Source": "S4",
                "Target": "MMSS",
                "TransMethod": "Webservice",
                "toMessages": [
                    {
                        "HGUID": "4c38271a-17ba-462e-803e-0475b37a5145",
                        "MsgClass": "MMSS_A006",
                        "MsgType": "S",
                        "MsgNo": "11",
                        "Message": "成功処理 購買情報マスタ登録されました"
                    }
                ]
            }
        }
    ]
}

批处理请求的使用方式可以参考以下链接:

Combine multiple requests in one HTTP call using JSON batching - Microsoft Graph | Microsoft Docsicon-default.png?t=LA92https://docs.microsoft.com/en-us/graph/json-batching

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:46:48  更:2021-12-04 13:46:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/6 7:51:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码