我已经升级了 graphql-mesh/soap 版本和其他依赖项。 我的soap wsdl正在使用soap1.1功能。
更新后,我无法连接到肥皂客户端,因为它返回 500 错误,因为请求中 graphqlmesh Soap 创建的命名空间中版本不匹配。
我已经在 .meshrc.yaml 中使用源 url 配置了肥皂处理程序
请求正文中的预期命名空间 -http://schemas.xmlsoap.org/soap/envelope
管理使用custome-fect修改命名空间。
sources:
- name: myser
handler:
soap:
source: http://127.0.0.1:8080/myser.wsdl
operationHeaders:
Content-Type: text/xml;charset=utf-8
Accept-Encoding: gzip,deflate
customFetch: ./custom-fetch.ts
serve:
endpoint: /api/graphql
port: 5000
我的自定义-fetch.js
import { fetch } from '@whatwg-node/fetch'
export default async function ( url: string, options: RequestInit = {} )
{
console.log(url)
if ( url === 'http://localhost:8080/myserv' )
{
console.log(options.body)
if (options.body && typeof options.body === 'string')
{
let body = options.body;
if (typeof body === 'string') {
body = body.replace(
'<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">',
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >'
);
options.body = body;
console.log('Modified xml body:', options.body);
}
}
}
return fetch(url, options);
}