当前位置: 首页 > news >正文

邓亚萍近况 做网站败光20亿班级网站建设的范围

邓亚萍近况 做网站败光20亿,班级网站建设的范围,58同城网络营销,wordpress 煎蛋主题文章目录 前言一、案例介绍/笔者需求二、WebService是什么#xff1f; a.传输协议 b.数据协议 c.WSDL d.UDDI 三、WebService 和 WebApi 的区别以及优缺点 a.主要区别 b.优缺点 四、SAP如何发布一个webser… 文章目录 前言一、案例介绍/笔者需求二、WebService是什么            a.传输协议            b.数据协议            c.WSDL            d.UDDI 三、WebService 和 WebApi 的区别以及优缺点            a.主要区别            b.优缺点 四、SAP如何发布一个webservice接口            a.服务的激活            b.函数的创建            c.根据向导创建服务            d.激活查看服务            e.SOAMANAGER 配置Web服务 生成WSDL地址            f.查看SOAMANAGER生成WSDL地址 五、WSDL接口文档详解            a.WSDL 文件结构            b.Documentation            c.Policy            d.Types            e.Messages            f.Port Types            g.Bindings            h.Services 六、Postman调用webservice接口            a.请求URL            b.请求方式            c.请求头            d.请求体            e.调用查看返回结果            f.权限配置 七、其他编程语言调用            a.Python调用 八、总结 前言 本文2w字先 点赞 关注 收藏 制作不易 谢谢 这篇文章给大家介绍一下SAP如何配置发布Webservice接口也就是作为服务的提供者发布之后并采用Postman和Python进行调用。这篇文件主要还是以SAP如何配置出Webservice为主来展开介绍网上虽然也有类似的文章但是配图很模糊并且不完善知识也不连贯所以决定自己出一篇虽然在现代以及往后的软件开发中更偏向于使用WebAPI但是webservice也有着不可替代的优势和应用场景。 一、案例介绍/笔者需求 这篇文章我们会在SAP中创建一个简单的函数以这个函数创建企业服务为案例也就是等同于把这个函数封装成 Webservice对象了在这过程中我会首先介绍Webservice是什么有什么优缺点和 Webapi的主要区别是什么后面也会介绍它生成的WSDL文件的详解。 二、WebService是什么 Webservice 说简单点它就是一个接口我们只要遵循它的数据格式和调用方式这个接口就能给我们返回相应的数据然后我们再来看一下比较官方的描述WebService是一种通过网络进行分布式计算和应用集成的技术。它允许不同的应用程序通过互联网进行互操作和通信即使它们运行在不同的平台或编程语言上。WebService基于一系列标准协议如SOAPSimple Object Access Protocol、WSDLWeb Services Description Language和UDDIUniversal Description, Discovery, and Integration。 a.传输协议 Webservice 的传输协议通常使用HTTP或HTTPS作为传输协议但也可以使用其他协议如SMTPSimple Mail Transfer Protocol和 JMSJava Message Service。                       一般都是http、https它两就是超文本传输协议只不过带s的是更安全它们是Web通信的基础定义了请求和响应的格式和规则使得Web浏览器和服务器能够交换各类格式的信息。 b.数据协议 Webservice 的数据协议是SOAPSimple Object Access Protocol是一种基于XML的消息协议用于在Webservice之间交换信息。它定义了消息的格式和处理规则支持复杂的数据类型和操作。这也就注定了Webservice必须使用XML格式的数据进行通信。 c.WSDL WSDL 可以理解为它是用XML编写的接口文档 注意是文档用于描述Webservice的功能、操作、端点和访问方式。WSDL文件提供了服务的契约详细描述了服务的接口和数据格式类型等等。 d.UDDI UDDI一个基于XML的标准用于注册和发现Webservice。我自己的理解就是所有人配置发布的Webservice都会被记录在一个公共的注册表然后有人调用对应Webservice的时候就会去这个注册表中查找到对应的服务找到了就可以调用没找到就调用失败。让我们在来看一下比较官方的解释UDDIUniversal Description, Discovery, and Integration 是一种基于XML的标准用于注册和发现WebService。它类似于一个目录服务帮助企业发布、查找和集成WebService。UDDI允许企业和应用程序通过互联网发布和查找WebService从而实现更高效的业务集成和互操作性。                       消费者可以根据服务的名称、分类、发布者等进行搜索。一旦找到匹配的服务消费者可以获取服务的WSDL文档从而了解如何访问和使用该服务。但是开发者一般直接使用WSDL文件解读和调用WebService而不需要通过UDDI查找服务。WSDL提供了详细的接口描述足以支持服务的发现和调用。所以这个UDDI了解一下就行了。 三、WebService 和 WebApi 的区别以及优缺点 a.主要区别 1.传输协议                             Webapi只能使用http而Webservice有多种可选但是一般也是http。 2.数据协议                             Webservice只能使用XML的数据格式而Webapi是JSON或者XML都可以。                             Webapi使用JSON格式消息体小传输效率高。                        4.应用场景                             Webservice适合端到端的场景提供服务例如CS架构的客户端到服务器这种场景 或者是为了遗留系统需要与已有的SOAP服务进行集成。                             Webapi更适合BS架构的应用场景就是浏览器到服务器这种由于Webapi采用REST架构风格所以能被广泛支持几乎所有的现代编程语言和框架都原生支持RESTful API。 b.优缺点 1.性能复杂度                             这方面可以说Webapi完胜由于Webservice有SOAP协议的存在需要处理SOAP消息SOAP消息较复杂处理起来较为繁琐。而且使用XML消息体较大传输效率较低。 2.安全性                             默认情况下Webapi是没有SOAP那样的内置安全机制需要额外实现。 3.文档契约                             Webapi如果接口有变化的话需要手动的更新文档容易出错但是Webservice如果接口有变化那么只需要重新获取一下WSDL即可所以学会看WSDL还是很重要的。 四、SAP如何发布一个webservice接口 SAP要配置发布Webservice接口主要有两个步骤在GUI端根据向导创建生成一个企业服务然后再使用事务码SOAMANAGER进入到浏览器SOAP的配置界面进行服务的创建配置最终会生成获取WSDL文件的地址有了这个WSDL之后我们就可以根据WSDL里面详细的接口描述来调用接口了。其实这些步骤就是将SAP已有功能封装成Webservice对象了供其他系统调用从而实现SAP与非SAP系统如OA、PLM等系统的集成。 a.服务的激活 如果你们系统 域名访问、WDA程序相关的服务、SOAMANAGER相关的服务 都已激活能正常使用 可以跳过此步骤。 可以直接运行SOAMANAGER事务码看是否能正常进入配置界面如下图如果可以就直接跳过此步骤。 1.域名解析                             这个一般不会有问题的你可以先忽略此步骤如果不行再回头来看如果你们SAP是在内网本地进行部署的现在你要是通过执行某些事务码例如webgui、soamanager、sap自己带出来的域名不能访问的话那么你测试练习的时候可以先进行单机域名解析注意是不能访问不是访问报错不能访问和访问报错是两码事。不能访问到就如同下图一样这个url是我乱输入的。                             1、 单机域名解析                                    我们能通过域名访问到指定的网站是因为DNS服务器或者是自己电脑把域名解析为了IP地址我们要进行单机域名解析也就是让自己电脑解析此域名。下图是我们公司的一个填报考勤的网站可以看到公司是没有购买域名的就是直接用ip访问的那么如果我想用域名访问这个网站可以做如下操作。 路径为C:\Windows\System32\drivers\etc                                    如下图所示可以看到能通过这个域名访问到了这个就是单机域名解析的原理。如果你发现你把记事本中的解析删掉了但是还能通过此域名访问那是因为缓存的原因你需要清理一下浏览器缓存如果是Edge浏览器你可以按 Ctrl Shift Del 只勾选 缓存的图像和文件 点 立即清除 即可。                                    如果你想要获取你们SAP系统的域名可以输入 webgui 这个事务码或者 soamanager 事务码 sap 都会打开浏览器把域名自己带出来。如下图所示就是webgui带出来的域名图中关于服务的激活后面会有详细操作。 2、 集中域名解析                                    看完了单机域名解析其实这个集中域名解析也就好理解了。就是需要公司网管把解析条目添加到服务器所在网络的DNS服务中。这样处于这个网络的设备就都能通过域名访问了。 2.WDA服务                             由于SOAMANAGER这个程序其实就是基于Netweaver的Web Dynpro程序所以要使用SOAMANAGER就得激活WDA服务相关服务SAP Netweaver组件安装后默认是不激活 WDA 和 SOAMANAGER 相关服务的是出于安全的考虑我们需要通过事务码 SICF 逐个激活相关服务。 1、 进入定义服务界面 事务码SICF 层次结构SERVICE 2、 搜索服务名称WEBDYNPRO 完整路径/default_host/sap/bc/webdynpro 3、 搜索服务名称MYSSOCNTL 完整路径/default_host/sap/public/myssocntl                                  这个好像不激活也可以的 没激活就是暗的。 4、 搜索服务名称WEBDYNPRO 完整路径/default_host/sap/public/bc/webdynpro 5、 以下同上面一样先搜索再根据完整路径找到对应服务激活即可。 搜索完整路径ur/default_host/sap/public/bc/uricons/default_host/sap/public/bc/iconsicons_rtl/default_host/sap/public/bc/icons_rtlwebicons/default_host/sap/public/bc/webiconspictograms/default_host/sap/public/bc/pictograms 3.SOAMANAGER服务                             SOAMANAGER 相关服务激活也同上面一样需要注意的是在搜索的时候可能出现太多的节点不好找那么就根据完整路径自己手动找吧。 搜索完整路径soap/default_host/sap/bc/soapsrt/default_host/sap/bc/srtsap/default_host/sap/bc/srt/rfc/sapsap/default_host/sap/bc/webdynpro/sapappl_soap_management/default_host/sap/bc/webdynpro/sap/appl_soap_management 4.测试运行SOAMANAGER                             完成以上操作之后可以尝试运行SOAMANAGER事务码如果能顺利进入浏览器并且出现登录界面那么就证明服务都正常运行了。 如果出现如下界面点继续访问就行了。 如果页面返回的是403可能是某些服务没激活一般访问的URL地址也就是服务激活对应的地址呢。下图的操作是通过URL获取WSDL文件的地址。可以看到没激活WSDL11服务就无法正常使用这个功能。 下图是输入事务码SOAMANAGER进入web配置界面如果出现这些问题就要根据URL审查是不是哪些服务没有激活。有时候也不一定就是URL结尾的服务没激活。下图就是 /default_host/sap/bc/webdynpro 未激活而并非 appl_soap_management 未激活所以出现问题还是要仔细审查一下这些服务的。 b.函数的创建 我们就创建一个比较简单的函数入参两个分别为 FIRSTNAME 和 LASTNAME 出参的话就一个把两入参拼接就是出参 FULLNAME 。                        1.创建函数组                             根据编号123456 操作即可。 2.创建函数模块                             使用SE37或者直接在SE80下面的函数组创建即可下图是SE80创建步骤SE37创建的时候需要手动输入函数组名称。 3.函数配置                             1、 设置为远程调用 2、 入参 出参 3、 代码逻辑 c.根据向导创建服务 调出向导创建页面的方式有多种可以从SE80包的层面创建也可以从SE80函数模块层面创建还可以从SE37进入对应函数创建。其中在SE80包层面创建的话可配置项是最多的。下面我将进行SE80包层面如何创建的详细步骤。 1.向导第一步                             这一步是 选择要创建的代理的对象类型。 为什么叫代理对象呢其实相对于我们这个RFC函数而言创建的Webservice就是代理服务因为外部系统的请求进来之后首先是到了Webservice然后Webservice再来调用我们的RFC。所以Webservice相当于我们RFC与外部系统之间的代理。其实SAP也提供了各类语言之间调用RFC的办法但是相对于Webservice或者是走PI、PO、CPI 这些中间件通用性可配置性还是比较低的。这一步我们选择 服务提供者(Service Provider) 如下图所示。 这个步骤的这些选项允许我们在SAP系统中创建和管理不同类型的服务和相关对象从而实现复杂的企业服务架构。根据我们的需求选择相应的选项可以帮助我们更有效地定义和管理服务。如下表格是其他选项的简介。 选项描述用途Data Type定义数据的结构包括字段、数据类型和长度。用于描述消息或操作中的数据结构。Message Type定义消息的结构。用于描述在系统之间交换的数据格式。Datatype Enhancement扩展现有数据类型。允许增加额外的字段或属性到现有数据类型。Fault Message定义如何使用外部Web服务。用于在SAP系统中调用外部Web服务。Service Consumer定义消息的结构。用于描述在系统之间交换的数据格式。RFC Consumer用于远程功能调用RFC的消费者定义。允许SAP系统调用外部RFC服务。Service Provider定义一个服务提供者。用于将SAP系统中的功能发布为Web服务供其他系统调用。Event Provider定义事件提供者。用于发布和处理事件以便在系统之间进行异步通信。Service Variant服务的不同版本或变体。允许管理同一服务的多个版本。Consumer Mapping定义服务消费者的映射。用于将服务消费者映射到实际的服务实现。Operation Mapping定义操作之间的映射。用于将请求和响应消息映射到相应的操作。Processing Type Domain处理类型的领域。定义处理类型的分类。Integration Scenario Definition定义集成场景。用于描述如何在不同系统之间集成服务。Semantic Contract定义语义合同。用于描述服务之间的语义约定。Contract定义合同。用于描述服务提供者和消费者之间的合同。Contract Implementation合同的实现。定义如何实现合同中描述的服务。Consumer Factory定义消费者工厂。用于生成服务消费者实例。Service Group定义服务组。用于将相关的服务组织在一起进行管理。 2.向导第二步                             我们选择如下图所示的选项。这个选项代表什么请看后面的表格。 选项描述用途Backend定义数据的结构包括字段、数据类型和长度。用于将SAP系统中的后端功能模块或BAPI暴露为Web服务。(具体我也不清楚)Enterprise Service Repository定义消息的结构。用于通过企业服务库中的预定义服务来生成Web服务。Existing ABAP Object (Inside Out)指现有的ABAP对象。可以将函数组、函数模块、BAPI 暴露为Web服务。也可以说是封装成为web service对象了External WSDL/Schema指外部的WSDL或XML Schema定义。选择这个最终生成的webservice是会去调用外部的一个webservice等于是sap生成的webservice做了代理。 3.向导第三步                             这一步是给我们创建的服务起一个名称再输入描述这个名称会在后续的SOAMANAGER事务码中的配置web服务中用到。这个名称和函数名没啥关系哦就是一个服务名称是另外的含义后续管理查找配置服务会用到的。 4.向导第四步                             根据需求我们选择 函数模块 5.向导第五步                             选择要调用的函数还有一个Map Name选项 一般用不上Map Name的作用是在某些情况下外部系统可能有特定的命名规范要求你可以使用映射名称来符合这些要求而不改变函数模块的实际名称也有可能是为了起一个使外部调用者更容易理解服务名称可以使用更具描述性的映射名称。 6.向导第六步                             这一步是选择不同的安全配置文件Profile。每个Profile选项代表一种安全认证和传输保障的组合。由于我们是练习测试就选择无认证方式无传输保障的选项四了其他选项的详情请看后面的表格。这个好像在SOAMANAGER还可以再次配置。 选项认证方式传输保障描述Authentication with Certificates and Transport Guarantee使用证书进行认证。提供传输保障例如通过SSL/TLS。这种配置提供了高安全性通过证书进行身份验证并且确保数据在传输过程中是安全的。Authentication with User and Password, No Transport Guarantee使用用户名和密码进行认证。不提供传输保障。这种配置提供了基本的身份验证但数据在传输过程中没有加密或其他保障措施。Authentication with User and Password and Transport Guarantee使用用户名和密码进行认证。提供传输保障例如通过SSL/TLS。这种配置结合了用户/密码认证和传输保障提供了中等水平的安全性。No Authentication and No Transport Guarantee不进行任何身份验证。不提供传输保障。这种配置没有任何安全措施适用于不需要安全保障的非敏感数据。 7.向导第七步                             这一步根据公司规定将这个服务存放到指定包和关联请求号由于我是测试练习就放到本地包了。                        8.向导第八步                             最后一步点击完成 我们也可以看到这一步有提示说这个服务现在还没法使用还需要在SOAMANAGER中配置。 d.激活查看服务 1.激活服务                             根据向导创建完之后需要我们激活服务不然在SOAMANAGER里面是搜不到这个服务的。 2.测试运行服务                             虽然我们这个服务还没在 SOAMANAGER 配置外部系统还不能发现和调用但我们可以在SAP本地测试的。 3.WSDL分页签查看                             现在只要能访问SAP的网络的设备都可以通过如下图这个URL获取到这个WSDL文件访问的时候如果要输入用户名和密码就输SAP登录的用户名密码就行。但是这个WSDL现在还不足以让外部系统来解读调用你可以叫这个为 初始生成的WSDL 这个WSDL通常包含服务的基本结构和接口定义。它定义了服务的操作、消息类型、数据类型等内容。可以用于初步的服务调用和测试。也可以用下面这个链接获取这个好像是用 WSDL11服务 专门获取WSDL的 URL。                             http://域名:端口号/sap/bc/soap/wsdl11?services RFC sap-client客户端                             当你在SOAMANAGER中配置并激活Web服务后系统会生成一个新的WSDL的 URL这个WSDL除了包含初始WSDL的所有内容外还会包含更多的配置信息如实际的端点地址、安全设置、传输协议等。它是一个更完整、更详细的WSDL反映了服务在实际运行环境中的配置。用于实际的服务调用和集成。它提供了客户端与服务端通信所需的所有详细信息并确保服务按照在SOAMANAGER中配置的安全和传输设置运行。                        4.其他分页签                             其他分页签你们自己随便看看就行了感觉也没啥重要信息了。 e.SOAMANAGER 配置Web服务 生成WSDL地址 这一步我们会在SOAMANAGER中配置并激活Web服务系统会生成一个新的WSDL获取的URL通过对这个WSDL的解读我们就可以准确调用这个接口了。                        1.进入SOA管理界面                             直接输入 SOAMANAGER 回车就行。进去之后点击 web服务配置 2.查找要配置的服务                             进入之后如下图搜索我们要创建配置的服务。如果 SAP没有激活此服务或者在激活之前就打开了此页面是搜不到的。需要激活之后关闭此页面重新进入。 3.服务和绑定名称                             这个新绑定名称是对服务的具体实现进行精细的配置和管理。我们每一个服务都可以配置出来多个接口的比如Z_GLYN_JOIN_NAME这个服务可以配置两个接口一个绑定的名称叫Z_GLYN_JOIN_NAME_HTTP再创建另外一个接口叫Z_GLYN_JOIN_NAME_HTTPS代表这个服务有两个接口可以调用只不过走的协议不一样一个是HTTP另外一个是HTTPS但是我们不仅仅可以配置协议 还有更多的信息可以配置。 3.安全配置                             这一步是关于安全的配置。我先选无验证 后续再改验证方式看调用方式会有何变化。 3.SOAP协议                             这块的配置没有什么特殊要求的话就保持默认吧。 3.完成配置                             在我点击完成的时候报错提示 Property missing: AuthenticationMethod.ABAPServiceUser.Username 这个是因为安全配置那个步骤我忘记输入用户名和密码了。 f.查看SOAMANAGER生成WSDL地址 根据上面配置完成之后我们就可以根据创建的服务获取WSDL了。                        1.界面介绍                             配置成功之后就会出现如下图所示我出现了两个条目是因为我又新配置了一个为了演示那个新绑定名称的作用而已。                        2.查看WSDL的URL                             现在就可以通过如下图这个 URL 获取到WSDL了。有了这个WSDL就可以根据里面的信息进行接口的调用。但是前提你得能看懂WSDL所以下面我们会对WSDL的内容进行详解。 五、WSDL接口文档详解 WSDL文档看起来还是比较复杂的一个 WSDL 文件包含多个重要部分包括服务的端点、操作、消息类型等笔者其实也是刚接触不久我们只需要提取里面重要的信息就行了。后期我自己对WSDL文档摸清楚后会回来填坑谢谢大家。首先我们要解读的WSDL文档如下。 ?xml version1.0 encodingutf-8? wsdl:definitions targetNamespaceurn:sap-com:document:sap:rfc:functionsxmlns:wsdlhttp://schemas.xmlsoap.org/wsdl/xmlns:xsdhttp://www.w3.org/2001/XMLSchemaxmlns:soaphttp://schemas.xmlsoap.org/wsdl/soap/xmlns:wsoap12http://schemas.xmlsoap.org/wsdl/soap12/xmlns:httphttp://schemas.xmlsoap.org/wsdl/http/xmlns:mimehttp://schemas.xmlsoap.org/wsdl/mime/xmlns:tnsurn:sap-com:document:sap:rfc:functionsxmlns:wsphttp://schemas.xmlsoap.org/ws/2004/09/policyxmlns:wsuhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsdwsdl:documentationsidl:sidlxmlns:sidlhttp://www.sap.com/2007/03/sidl//wsdl:documentationwsp:UsingPolicy wsdl:requiredtrue/wsp:Policy wsu:IdBN__Z_GLYN_JOIN_NAMEwsp:ExactlyOnewsp:Allsapattahnd:Enabledxmlns:sapattahndhttp://www.sap.com/710/features/attachment/false/sapattahnd:Enabledsaptrnbnd:OptimizedMimeSerializationxmlns:saptrnbndhttp://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization wsp:Optionaltrue/wsaw:UsingAddressingxmlns:wsawhttp://www.w3.org/2006/05/addressing/wsdl wsp:Optionaltrue//wsp:Allwsp:Allsapattahnd:Enabledxmlns:sapattahndhttp://www.sap.com/710/features/attachment/false/sapattahnd:Enabledsaptrnbnd:OptimizedXMLTransfer urihttp://xml.sap.com/2006/11/esi/esp/binxmlxmlns:saptrnbndhttp://www.sap.com/webas/710/soap/features/transportbinding/ wsp:Optionaltrue/wsaw:UsingAddressingxmlns:wsawhttp://www.w3.org/2006/05/addressing/wsdl wsp:Optionaltrue//wsp:All/wsp:ExactlyOne/wsp:Policywsp:Policy wsu:IdBN__Z_GLYN_JOIN_NAME_soap12wsp:ExactlyOnewsp:Allsapattahnd:Enabledxmlns:sapattahndhttp://www.sap.com/710/features/attachment/false/sapattahnd:Enabledsaptrnbnd:OptimizedMimeSerializationxmlns:saptrnbndhttp://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization wsp:Optionaltrue/wsaw:UsingAddressingxmlns:wsawhttp://www.w3.org/2006/05/addressing/wsdl wsp:Optionaltrue//wsp:Allwsp:Allsapattahnd:Enabledxmlns:sapattahndhttp://www.sap.com/710/features/attachment/false/sapattahnd:Enabledsaptrnbnd:OptimizedXMLTransfer urihttp://xml.sap.com/2006/11/esi/esp/binxmlxmlns:saptrnbndhttp://www.sap.com/webas/710/soap/features/transportbinding/ wsp:Optionaltrue/wsaw:UsingAddressingxmlns:wsawhttp://www.w3.org/2006/05/addressing/wsdl wsp:Optionaltrue//wsp:All/wsp:ExactlyOne/wsp:Policywsp:Policy wsu:IdIF__Z_GLYN_JOIN_NAMEwsp:ExactlyOnewsp:Allsapsession:Sessionxmlns:sapsessionhttp://www.sap.com/webas/630/soap/features/session/sapsession:enableSessionfalse/sapsession:enableSession/sapsession:Sessionsapcentraladmin:CentralAdministrationxmlns:sapcentraladminhttp://www.sap.com/webas/700/soap/features/CentralAdministration/ wsp:Optionaltruesapcentraladmin:BusinessApplicationID000C296C4B381EDC91F239BBC731D61C/sapcentraladmin:BusinessApplicationID/sapcentraladmin:CentralAdministration/wsp:All/wsp:ExactlyOne/wsp:Policywsp:Policy wsu:IdOP__Z_GLYN_JOIN_NAMEwsp:ExactlyOnewsp:Allsaptrhnw05:requiredxmlns:saptrhnw05http://www.sap.com/NW05/soap/features/transaction/no/saptrhnw05:requiredsapcomhnd:enableCommitxmlns:sapcomhndhttp://www.sap.com/NW05/soap/features/commit/false/sapcomhnd:enableCommitsapblock:enableBlockingxmlns:sapblockhttp://www.sap.com/NW05/soap/features/blocking/true/sapblock:enableBlockingsaprmnw05:enableWSRMxmlns:saprmnw05http://www.sap.com/NW05/soap/features/wsrm/false/saprmnw05:enableWSRM/wsp:All/wsp:ExactlyOne/wsp:Policywsdl:typesxsd:schema attributeFormDefaultqualified targetNamespaceurn:sap-com:document:sap:rfc:functionsxsd:simpleType namechar10xsd:restriction basexsd:stringxsd:maxLength value10//xsd:restriction/xsd:simpleTypexsd:element nameZ_GLYN_JOIN_NAMExsd:complexTypexsd:sequencexsd:element nameIV_FIRSTNAME typetns:char10 minOccurs0/xsd:element nameIV_LASTNAME typetns:char10 minOccurs0//xsd:sequence/xsd:complexType/xsd:elementxsd:element nameZ_GLYN_JOIN_NAMEResponsexsd:complexTypexsd:sequencexsd:element nameEV_RESNAME typetns:char10//xsd:sequence/xsd:complexType/xsd:element/xsd:schema/wsdl:typeswsdl:message nameZ_GLYN_JOIN_NAMEwsdl:part nameparameters elementtns:Z_GLYN_JOIN_NAME//wsdl:messagewsdl:message nameZ_GLYN_JOIN_NAMEResponsewsdl:part nameparameter elementtns:Z_GLYN_JOIN_NAMEResponse//wsdl:messagewsdl:portType nameZ_GLYN_JOIN_NAMEwsdl:documentationsapdoc:sapdocxmlns:sapdocurn:sap:esi:documentationsapdoc:docitem docURLhttp://mysap.goodsap.cn:50400/sap/bc/esdt/docu/sd_text?sap-client400amp;sd_nameZ_GLYN_JOIN_NAME//sapdoc:sapdoc/wsdl:documentationwsp:Policywsp:PolicyReference URI#IF__Z_GLYN_JOIN_NAME//wsp:Policywsdl:operation nameZ_GLYN_JOIN_NAMEwsp:Policywsp:PolicyReference URI#OP__Z_GLYN_JOIN_NAME//wsp:Policywsdl:input messagetns:Z_GLYN_JOIN_NAME/wsdl:output messagetns:Z_GLYN_JOIN_NAMEResponse//wsdl:operation/wsdl:portTypewsdl:binding nameZ_GLYN_JOIN_NAME typetns:Z_GLYN_JOIN_NAMEwsp:Policywsp:PolicyReference URI#BN__Z_GLYN_JOIN_NAME//wsp:Policysoap:binding transporthttp://schemas.xmlsoap.org/soap/http styledocument/wsdl:operation nameZ_GLYN_JOIN_NAMEsoap:operation soapActionurn:sap-com:document:sap:rfc:functions:Z_GLYN_JOIN_NAME:Z_GLYN_JOIN_NAMERequest styledocument/wsdl:inputsoap:body useliteral//wsdl:inputwsdl:outputsoap:body useliteral//wsdl:output/wsdl:operation/wsdl:bindingwsdl:binding nameZ_GLYN_JOIN_NAME_soap12 typetns:Z_GLYN_JOIN_NAMEwsp:Policywsp:PolicyReference URI#BN__Z_GLYN_JOIN_NAME_soap12//wsp:Policywsoap12:binding transporthttp://schemas.xmlsoap.org/soap/http styledocument/wsdl:operation nameZ_GLYN_JOIN_NAMEwsoap12:operation soapActionurn:sap-com:document:sap:rfc:functions:Z_GLYN_JOIN_NAME:Z_GLYN_JOIN_NAMERequest styledocument/wsdl:inputwsoap12:body useliteral//wsdl:inputwsdl:outputwsoap12:body useliteral//wsdl:output/wsdl:operation/wsdl:bindingwsdl:service nameZ_GLYN_JOIN_NAMEwsdl:port nameZ_GLYN_JOIN_NAME bindingtns:Z_GLYN_JOIN_NAMEsoap:address locationhttp://mysap.goodsap.cn:50400/sap/bc/srt/rfc/sap/z_glyn_join_name/400/z_glyn_join_name/z_glyn_join_name//wsdl:portwsdl:port nameZ_GLYN_JOIN_NAME_soap12 bindingtns:Z_GLYN_JOIN_NAME_soap12wsoap12:address locationhttp://mysap.goodsap.cn:50400/sap/bc/srt/rfc/sap/z_glyn_join_name/400/z_glyn_join_name/z_glyn_join_name//wsdl:port/wsdl:service/wsdl:definitionsa.WSDL 文件结构 这里重要的东西是 xmlns:tns“urn:sap-com:document:sap:rfc:functions” 这个属性值会在我们制作请求体内容的时候用到没有它会请求失败的。它在倒数第三行哦具体来说它是命名空间后面会详细介绍命名空间的作用。 b.Documentation 这个是个可选 元素它意思你要是想获得更多关于这份WSDL文档的注释与描述应该去 http://www.sap.com/2007/03/sidl 网站 这个很好理解因为这文档其实就是SAP生成提供的。 c.Policy 这里主要定义了策略的逻辑组合策略Policy的逻辑组合用于定义 Web 服务的行为和特性如安全性、事务性、消息传递可靠性等。策略的逻辑组合允许服务提供者和服务消费者明确和协商这些特性以确保服务的正确和安全运行。 wsp:ExactlyOne 下面可以包含多个 wsp:All 表示策略中有多个选项客户端和服务端必须选择其中一个。在我们的文档中 wsp:ExactlyOne 标签下面有两组策略组合因为有两个 wsp:All 标签。 wsp:All 表示策略中的所有选项都必须满足。你选择了组合一那么就得满足组合一的所有要求选择组合二也是一样的。 d.Types 这里定义了数据类型和入参出参 以及参数的可选还是必输但其实这里并不是真实定义出参入参的地方这里你可以理解为只是定义还没使用真正对入参出参起效果的是Messages其实这些标签还有其他的属性后期遇到了再过来补充吧。 e.Messages 这里才算定义了入参出参吧它这样设计可能是为了复用吧。你看这里的定义就能跟上面哪些名称对应起来了吧。 f.Port Types 根据上面的那些定义理解着看下图就行了。 g.Bindings Bindings 部分用于将抽象的端口类型portTypeZ_GLYN_JOIN_NAME 绑定到具体的通信协议和消息格式。 h.Services Services 部分用于定义具体服务的端口信息和通信地址。这里才是真正接口的调用地址。 六、Postman调用webservice接口 要正确调用一个接口必须遵循它的各种标准首先我们要知道 请求URL、还有调用的方式是GET还是POST或者其他、还有请求头、请求体、权限设定这些基本内容。 a.请求URL 请求URL在WSDL中Services标签里面具体就是 soap:address location“”/ 标签里面的location属性 http://mysap.goodsap.cn:50400/sap/bc/srt/rfc/sap/z_glyn_join_name/400/z_glyn_join_name/z_glyn_join_name b.请求方式 如果文档没有在 binding 部分明确指出的话一般就用 POST因为HTTP协议的GET 方法不常用于 SOAP它会将消息体包含在 URL 中存在长度和安全性问题。如果有明确指出用GET的话就会如下图所示。 c.请求头 请求头主要是设置 Content-Type 因为webservice通信消息格式是XML所以要指明消息类型为XML如果没有其他特殊需求的话一般设置一个Content-Type就行了。 d.请求体 请求体设置还是有点东西的这个玩意要你自己根据WSDL文档中信息推导出来。我先把我们这个接口请求体的内容放下面然后再慢慢解释。 ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:urnurn:sap-com:document:sap:rfc:functionssoapenv:Header/soapenv:Bodyurn:Z_GLYN_JOIN_NAMEIV_FIRSTNAME托尼/IV_FIRSTNAMEIV_LASTNAME斯塔克/IV_LASTNAME/urn:Z_GLYN_JOIN_NAME/soapenv:Body /soapenv:Envelope首先webservice的请求体有这么几个内容 1、 EnvelopeSOAP 请求体必须包含 Envelope 元素作为根元素。                                  上述的Envelope标签中有两个属性 xmlns:soapenv、xmlns:urn 前者是 SOAP 协议的命名空间用于定义 SOAP 消息结构中的标准元素如 Envelope、Header 和 Body。 后者是 SAP 系统中的特定命名空间用于定义与 SAP RFC 相关的元素和数据类型。urn 是命名空间的前缀可以在 XML 文档中用于引用该命名空间中的元素。使用这些命名空间前缀可以明确区分不同来源的元素确保 XML 文档的结构和内容被正确解析和处理。如果没有命名空间的指定 那么就无法获取WSDL准确的元素定义。所以这两个命名空间搬过来的时候一定要搬对。 2、 HeaderSOAP 请求体可以包含可选的 Header 元素。                                  这里可以不用设置请求头内容。 3、 BodySOAP 请求体必须包含 Body 元素里面包含实际的消息。                                  Body里面的元素相对来说好理解一点主要是这个 urn 命名空间要写对要对应的上。urn是一个命名空间前缀代表一个URI统一资源标识符命名空间。这种命名空间前缀用于区分和标识XML元素和属性以避免命名冲突。 urn:Z_GLYN_JOIN_NAME 代表调用的具体方法或操作是 Z_GLYN_JOIN_NAME。 e.调用查看返回结果 1、 设置 URL、调用方式、请求头。 2、 请求体与返回结果 f.权限配置 上面接口调用的时候没有任何权限验证任何人都可以调用现在我们修改服务配置来加上认证方式。                        1.修改配置重新发版                             记得重新发版一下。 2.效果演示                             可以看到现在调用结果变了 提示权限问题。我将返回内容在浏览器解析之后画面如下。                        3.设置授权                             如下图设置授权。 七、其他编程语言调用 上面我们用POSTMAN调用成功了下面我们再用常用的编程语言调用试一下。 a.Python调用 由于笔者对Python比较熟悉所以这里我也只用Python演示一下其他语言的话也都大同小异你们自己试试就行了。                        1.效果演示                             源码在下面。 2.Copy Code                             pass import requests from requests.auth import HTTPBasicAuth# 请求url url http://mysap.goodsap.cn:50400/sap/bc/srt/rfc/sap/z_glyn_join_name/400/z_glyn_join_name/z_glyn_join_name# 设置请求头 headers {Content-Type: text/xml;charsetUTF-8,# 这个SOAPAction没试出来效果不加也没关系跟postman保持一致即可。# SOAPAction: urn:sap-com:document:sap:rfc:functions:Z_GLYN_JOIN_NAME:Z_GLYN_JOIN_NAMERequest }# 设置请求体 body ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:urnurn:sap-com:document:sap:rfc:functionssoapenv:Header/soapenv:Bodyurn:Z_GLYN_JOIN_NAMEIV_FIRSTNAME托尼/IV_FIRSTNAMEIV_LASTNAME斯塔克/IV_LASTNAME/urn:Z_GLYN_JOIN_NAME/soapenv:Body /soapenv:Envelope# 有权限验证这样调用 response requests.post(url, databody, headersheaders, authHTTPBasicAuth(uname, upwd)) # 没权限校验这样调用 response requests.post(url, databody, headersheaders) print(response.text)八、总结 以上就是今天要讲的内容本文仅仅简单介绍了SAP如何配置发布webservice并调用以及webservice的一些其他扩展内容感觉笔者讲的好对自己有帮助的还麻烦点个免费的赞赞制作不易谢谢谢谢如果有说错或者不好的地方还望大家提出来见谅。感觉笔者写的好的别忘了关注点赞加评论哦也欢迎大家一起来讨论。谢谢
http://www.w-s-a.com/news/947602/

相关文章:

  • 怎样换网站logo公司名字大全集免费
  • 为网站网站做推广各类最牛网站建设
  • 网站用自己的电脑做服务器佛山做网站制作公司
  • 一个网站如何做cdn加速器如何上传网站数据库
  • 汝州住房和城乡建设局新网站营销网站定位
  • yy直播官网seo引擎优化是什
  • 做影视网站违法莫品牌营销是什么
  • 全网最稳最低价自助下单网站wordpress电影网站主题
  • 域名更换网站温州建设工程网站
  • 网站如何优化推广连锁店管理网站开发
  • 伊宁市做网站功能性质网站
  • 北京哪个网站制作公司优化大师免费安装下载
  • 同江佳木斯网站设计做网站联系电话
  • 设计上海展会2023seo网站模板下载
  • 开发一个卖东西的网站多少站长工具永久
  • 公司网站怎么突然多了好多友情链接如何删除宁波有几个区
  • 临沂seo网站推广wordpress新编辑器
  • c2c网站设计店面logo设计制作
  • 网站建设任务执行书重庆今天新闻事件
  • 怎样发布自己的网站南宁制作网站公司
  • wordpress装多站点百度查一下
  • 怎么优化一个网站搭建网站免费空间
  • 山东建设和城乡建设厅注册中心网站首页wordpress安装教材
  • 个人风采网站制作毕节网站开发公司电话
  • 网络网站销售设计主题和设计理念
  • 做网站一般用什么服务器承德专业做网站
  • 松北区建设局网站网站建设分为几种
  • 网站建设的合同 体会智联招聘网站建设情况
  • 记的网站域名wordpress地方信息主题
  • 淄博好的建网站公司网站建设 海口