版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
現(xiàn)代Web開發(fā)與應(yīng)用Web服務(wù)與微服務(wù)
內(nèi)容提要基于SOAP/WSDL的WebServicesRestful
WebServicesGraphQL微服務(wù)2025/1/8
3面向服務(wù)的架構(gòu)(SOA)IT基礎(chǔ)設(shè)施(ITinfrastructure)指機(jī)構(gòu)中與IT相關(guān)的各種硬件、軟件、服務(wù)及數(shù)據(jù)通信設(shè)施等的總和。SOA是Gartner于1996年提出的架構(gòu)思想Web服務(wù)與SOA不同SOA是一套面向服務(wù)架構(gòu)的標(biāo)準(zhǔn)規(guī)范。Web服務(wù)則是一套技術(shù)體系,可以用來建立應(yīng)用解決方案,解決特定的消息通信和應(yīng)用集成問題。在實(shí)際的業(yè)務(wù)環(huán)境中,SOA是一種信息規(guī)劃理念和應(yīng)用軟件架構(gòu),Web服務(wù)可以用來實(shí)現(xiàn)SOA。學(xué)術(shù)界有人認(rèn)為沒有Web服務(wù),也可以很好地實(shí)現(xiàn)SOA。網(wǎng)格計(jì)算、多代理技術(shù)等也是面向服務(wù)技術(shù),也可以實(shí)現(xiàn)SOA。相同在SOA規(guī)范中,明確提出使用Web服務(wù)技術(shù)實(shí)現(xiàn)SOA。Web服務(wù)的架構(gòu)與SOA在應(yīng)用實(shí)踐上是等同、可互換的?;赟OAP/WSDL的WebServicesW3C對(duì)WebServices的定義●AWebserviceisasoftwareapplication●identifiedbyaURI,●whoseinterfacesandbindingarecapableofbeingdefined,describedanddiscoveredbyXMLartifactsand●supportsdirectinteractionswithothersoftwareapplications●usingXMLbasedmessages●
viainternet-basedprotocols單個(gè)的Web服務(wù),就是一個(gè)支持機(jī)器之間通過網(wǎng)絡(luò)進(jìn)行交互的軟件系統(tǒng)。Web服務(wù)使用機(jī)器可以處理的格式(特別是WSDL)來描述自己的接口。其他系統(tǒng)則依據(jù)該接口描述,使用SOAP報(bào)文格式與Web服務(wù)通信。典型的SOAP報(bào)文是一個(gè)利用HTTP傳輸?shù)腦ML序列,在傳輸中通常與其他Web相關(guān)的標(biāo)準(zhǔn)結(jié)合基于SOAP/WSDL的WebServicesWebService架構(gòu)優(yōu)勢(shì):解決了分布式對(duì)象技術(shù)難以解決的異構(gòu)系統(tǒng)(不同硬件系統(tǒng)、不同操作系統(tǒng)、不同編程語言,等等)之間互操作性的問題?;赟OAP/WSDL的WebServices相關(guān)協(xié)議基于SOAP/WSDL的WebServices可互操作的基礎(chǔ)協(xié)議棧簡(jiǎn)單的協(xié)議棧將包括網(wǎng)絡(luò)層的HTTP、XML消息傳遞層的SOAP協(xié)議以及服務(wù)描述層的WSDL。所有企業(yè)間或公用Web服務(wù)都應(yīng)該支持這種可互操作的基礎(chǔ)協(xié)議棧基于SOAP/WSDL的WebServices使用SOAP的XML消息傳遞基于SOAP/WSDL的WebServices假設(shè)有上述接口定義的服務(wù)存在客戶端在遠(yuǎn)程調(diào)用sayHelloTo方法時(shí),提供一個(gè)名字,期望返回一個(gè)字符串假設(shè)JavaRMI、CORBA、DCOM都不存在,開發(fā)者必須負(fù)責(zé)將方法調(diào)用串行化,并把消息發(fā)給遠(yuǎn)程服務(wù)器。一個(gè)簡(jiǎn)單的方式是使用XMLpublicinterfaceHello{
publicStringsayHelloTo(Stringname);}一個(gè)簡(jiǎn)單的SOAP請(qǐng)求/響應(yīng)基于SOAP/WSDL的WebServices用XML打包請(qǐng)求將接口名作為根結(jié)點(diǎn)方法和參數(shù)作為結(jié)點(diǎn)將請(qǐng)求發(fā)送給服務(wù)器不創(chuàng)建自己的TCP/IP消息,利用HTTP將請(qǐng)求封裝成HTTPPOST請(qǐng)求格式發(fā)出<?xmlversion="1.0"?><Hello>
<sayHelloTo> <name>John</name>
</sayHelloTo></Hello>一個(gè)簡(jiǎn)單的SOAP請(qǐng)求/響應(yīng)服務(wù)器接收到請(qǐng)求,解碼XML,處理請(qǐng)求,然后以XML格式向客戶發(fā)送響應(yīng)與請(qǐng)求比較,方法的結(jié)點(diǎn)名字變?yōu)檎?qǐng)求的方法名后綴Response客戶程序知道自己調(diào)用了哪個(gè)方法,根據(jù)方法名后綴Response尋找調(diào)用方法的返回值<?xmlversion="1.0"?><Hello>
<sayHelloToResponse> <message>HelloJohn,Howareyou?</message>
</sayHelloToResponse></Hello>一個(gè)簡(jiǎn)單的SOAP請(qǐng)求/響應(yīng)基于SOAP/WSDL的WebServices參數(shù)方法名SOAP請(qǐng)求實(shí)例基于SOAP/WSDL的WebServices基于SOAP/WSDL的WebServicesSOAP響應(yīng)實(shí)例基于SOAP/WSDL的WebServices具有附件的SOAP消息結(jié)構(gòu)基于SOAP/WSDL的WebServices綁定到HTTP的SOAPSOAP很自然的利用HTTP的請(qǐng)求/響應(yīng)機(jī)制基于SOAP/WSDL的WebServicesPOSThttp://www.SmartH/HelloApplicationHTTP/1.0
Content-Type:text/xml;charset="utf-8"
Content-Length:587
SOAPAction:http://www.SmartH/HelloApplication#sayHelloTo
<SOAP-ENV:Envelopexmlns:SOAP-ENV="
/soap/envelope/"
xmlns:xsi="/1999/XMLSchema-instance"
xmlns:xsd="/1999/XMLSchema">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:sayHelloToxmlns:ns1="Hello“SOAP-ENV: encodingStyle="/soap/encoding/">
<namexsi:type="xsd:string"> Tarak </name>
</ns1:sayHelloTo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>綁定到HTTP的SOAP請(qǐng)求基于SOAP/WSDL的WebServicesHTTP/1.0200OKContent-Type:text/xml;charset="utf-8“Content-Length:615<SOAP-ENV:Envelopexmlns:SOAP- ENV="/soap/envelope/"
xmlns:xsi="/1999/XMLSchema-instance"
xmlns:xsd="/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:sayHelloToResponsexmlns:ns1="Hello"SOAP-ENV:encodingStyle="/soap/encoding/">
<returnxsi:type="xsd:string"> HelloJohn,Howareyoudoing? </return>
</ns1:sayHelloToResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>綁定到HTTP的SOAP響應(yīng)基于SOAP/WSDL的WebServicesWSDL如果將WebService作為一個(gè)分布式對(duì)象來看,WSDL就是WebService的接口描述語言(IDL)。WSDL定義了一套基于XML的語法,將WebService描述為能夠進(jìn)行消息交換的服務(wù)訪問點(diǎn)的集合。WSDL所處的地位WebServiceInterfaceInvocationSOAPWSDLDescriptionServiceRequestor基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述基本的服務(wù)描述分成了兩部分:服務(wù)接口和服務(wù)實(shí)現(xiàn)。ServiceInterfaceDefinitionServiceOpertionsMessageTypesPortTypePortBindingServiceImplementationDefinition基于SOAP/WSDL的WebServicesWSDL文檔結(jié)構(gòu)基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)接口定義是一種抽象的服務(wù)定義,它可以被多個(gè)服務(wù)實(shí)現(xiàn)定義實(shí)例化和引用與具體的WebServices部署細(xì)節(jié)無關(guān),是可以復(fù)用的描述服務(wù)接口包含WSDL元素,它們組成了服務(wù)描述中的可重用部分types
:message
:operationsportType:基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)接口定義types
:是一個(gè)數(shù)據(jù)類型定義的容器,包含了所有在消息定義中需要的XML元素的類型定義采用XMLSchema作為數(shù)據(jù)的規(guī)范定義數(shù)據(jù)類型將映射到相應(yīng)語言的相應(yīng)類型,如xsd:anyType元素一般映射為java.lang.object類.基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)接口定義message
:具體定義了在通信中使用的消息的數(shù)據(jù)結(jié)構(gòu)一個(gè)消息包含一個(gè)或者多個(gè)<part>子元素,<part>子元素標(biāo)識(shí)獨(dú)立的數(shù)據(jù)塊和數(shù)據(jù)塊所屬的數(shù)據(jù)類型.基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)接口定義operations抽象定義了Web服務(wù)的操作。操作定義了輸入和輸出數(shù)據(jù)流中可以出現(xiàn)的XML消息類似于java的方法定義portType
:指定Web服務(wù)端點(diǎn)所支持的活動(dòng)的子集。為一系列operations的集合為一組能在單個(gè)端點(diǎn)上執(zhí)行的活動(dòng)提供了一個(gè)唯一的標(biāo)志符基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)接口定義portType實(shí)例基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)實(shí)現(xiàn)定義描述給定服務(wù)提供者如何實(shí)現(xiàn)特定服務(wù)接口的WSDL文檔描述的內(nèi)容與具體服務(wù)的部署相關(guān)了Web服務(wù)被建模成service
元素。binding:Service:Port:基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)實(shí)現(xiàn)定義binding:定義了某個(gè)PortType與某一種具體的網(wǎng)絡(luò)傳輸協(xié)議或消息傳輸協(xié)議相綁定多種抽象消息交換模式與具體的傳輸協(xié)議和消息交換格式的綁定方式:與SOAP的綁定、與HTTPGET/POST的綁定以及與MIME的綁定基于SOAP/WSDL的WebServicesBinding的一個(gè)實(shí)例:某個(gè)portType元素的名字基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)實(shí)現(xiàn)定義Service:包含一組相關(guān)port
元素。Port:描述的是一個(gè)服務(wù)訪問入口的部署細(xì)節(jié)將端點(diǎn)(例如網(wǎng)址位置或URL)與binding
元素關(guān)聯(lián)起來。給出HTTP協(xié)議的URL,或者SMTP的emailaddress基于SOAP/WSDL的WebServicesWSDL基本服務(wù)描述服務(wù)實(shí)現(xiàn)定義Service的一個(gè)實(shí)例基于SOAP/WSDL的WebServicesWSDL文檔示例基于SOAP/WSDL的WebServicesWebService調(diào)用過程總結(jié)Restful
WebServicesREST架構(gòu)風(fēng)格REST的含義為RepresentationalStateTransfer(表述性狀態(tài)轉(zhuǎn)移)。是由HTTP、URI等規(guī)范的主要設(shè)計(jì)者、Apache服務(wù)器軟件的作者之一、Apache基金會(huì)的第一任主席RoyFileding博士在其博士論文《ArchitecturalStylesandtheDesignofNetwork-basedSoftwareArchitectures(架構(gòu)風(fēng)格與基于網(wǎng)絡(luò)應(yīng)用軟件的架構(gòu)設(shè)計(jì))》中提出的一種分布式應(yīng)用的架構(gòu)風(fēng)格。Restful
WebServicesREST架構(gòu)風(fēng)格表述性狀態(tài)轉(zhuǎn)移(REST)風(fēng)格是對(duì)分布式超媒體系統(tǒng)中的架構(gòu)元素的一種抽象。REST就是Web本身的架構(gòu)風(fēng)格,是設(shè)計(jì)、開發(fā)Web相關(guān)規(guī)范、Web應(yīng)用、Web服務(wù)的指導(dǎo)原則。名稱“表述性狀態(tài)轉(zhuǎn)移”是有意喚起人們對(duì)于一個(gè)良好設(shè)計(jì)的Web應(yīng)用如何運(yùn)轉(zhuǎn)的印象:一個(gè)由網(wǎng)頁(yè)組成的網(wǎng)絡(luò)(一個(gè)虛擬狀態(tài)機(jī)),用戶通過選擇鏈接(狀態(tài)轉(zhuǎn)移)在應(yīng)用中前進(jìn),導(dǎo)致下一個(gè)頁(yè)面(代表應(yīng)用的下一個(gè)狀態(tài))被轉(zhuǎn)移給用戶。Restful
WebServicesREST架構(gòu)風(fēng)格每一個(gè)URI代表一種資源;客戶端和服務(wù)器之間,傳遞這種資源的某種表述;客戶端通過HTTP,對(duì)服務(wù)器端資源進(jìn)行操作,實(shí)現(xiàn)“表述性狀態(tài)轉(zhuǎn)移"。Restful
WebServicesREST架構(gòu)風(fēng)格客戶端狀態(tài)轉(zhuǎn)移:客戶端接收到服務(wù)器返回的資源表示后,更新自身的狀態(tài)請(qǐng)求資源:客戶端向服務(wù)器發(fā)送一個(gè)請(qǐng)求(例如獲取用戶信息)。接收表示:服務(wù)器返回資源的表示(例如用戶信息的JSON對(duì)象)。更新狀態(tài):客戶端根據(jù)返回的表示更新自身的狀態(tài)。例如,在UI上顯示用戶信息,或基于此信息進(jìn)行進(jìn)一步的操作,例如編輯用戶信息。Restful
WebServicesREST架構(gòu)風(fēng)格服務(wù)端狀態(tài)轉(zhuǎn)移:客戶端發(fā)出請(qǐng)求后,服務(wù)器根據(jù)請(qǐng)求對(duì)資源進(jìn)行操作,導(dǎo)致資源的狀態(tài)發(fā)生變化。修改資源:客戶端發(fā)送一個(gè)請(qǐng)求來修改資源(例如更新用戶信息)。處理請(qǐng)求:服務(wù)器接收到請(qǐng)求后,更新資源的狀態(tài)(例如更新數(shù)據(jù)庫(kù)中的用戶信息)返回新的狀態(tài):服務(wù)器返回操作結(jié)果,可能會(huì)包含更新后的資源表示。Restful
WebServicesREST關(guān)鍵原則按資源組織,資源具有唯一ID在web中為URI將所有事物鏈接在一起超媒體被當(dāng)作應(yīng)用狀態(tài)引擎(HATEOAS)無狀態(tài)通信使用標(biāo)準(zhǔn)方法使用Http操作GET方法具有冪等性[指多個(gè)相同請(qǐng)求返回相同的結(jié)果]所有理解HTTP應(yīng)用協(xié)議的組件能與你的應(yīng)用交互資源多重表述Restful
WebServices面向資源的架構(gòu)(ROA)基于SOAP/WSDL的WS基本是一種基于RPC風(fēng)格的分布式計(jì)算。Restful
WebServices是一種面向資源的架構(gòu)(ROA)。資源的概念任何事務(wù),只要有被引用的必要,就稱為資源。通常為某個(gè)存放在網(wǎng)絡(luò)中的計(jì)算節(jié)點(diǎn)上并體現(xiàn)為比特流的東西。URI是每個(gè)資源的地址或獨(dú)一無二的識(shí)別符。URI只代表資源的實(shí)體,不代表它的表述。表述可以在HTTP請(qǐng)求的頭信息中用Accept和Content-Type字段指定。Restful
WebServices面向資源的架構(gòu)(ROA)的特征可尋址性(addressability)一個(gè)應(yīng)用將其數(shù)據(jù)集中有價(jià)值的部分作為資源通過URI暴露出來URI應(yīng)該具有描述性支持了緩存和書簽Amazon
s3中,每個(gè)桶(bucket)和對(duì)象(object)都有URIAjax不是可尋址的,不符合REST架構(gòu)風(fēng)格Restful
WebServicesREST關(guān)鍵原則HATEOASHypermediaAsTheEngineOfApplicationState,將超文本作為應(yīng)用狀態(tài)的引擎。支持客戶端通過服務(wù)器動(dòng)態(tài)提供的超媒體鏈接來理解和互動(dòng)。HATEOAS增加了服務(wù)的易用性、靈活性和可發(fā)現(xiàn)性。在每個(gè)資源的表示中,將包含一組控制信息,以鏈接的形式出現(xiàn),{"book":{"author":"J.K.Rowling","title":"HarryPotter","uri":"/books/1","links":[{"rel":"self","uri":"/books/1"},{"rel":"update","uri":"/books/1"},{"rel":"delete","uri":"/books/1"}]}}Restful
WebServicesREST關(guān)鍵原則無狀態(tài)性(statelessness)每個(gè)HTTP請(qǐng)求都是獨(dú)立的,包含了服務(wù)器操作所需要的所有信息一個(gè)無狀態(tài)搜索引擎/search?q=jellyfish&start=10每次搜索都回到初始狀態(tài)重新開始Restful
WebServicesREST關(guān)鍵原則無狀態(tài)性(statelessness)一個(gè)有狀態(tài)的搜索引擎示例每次可以基于前面一次搜索的狀態(tài),可以少發(fā)送一些信息,但不具有無狀態(tài)特性所具有的優(yōu)勢(shì)。Restful
WebServicesREST關(guān)鍵原則無狀態(tài)性的優(yōu)勢(shì):對(duì)于服務(wù)器端大大減少出錯(cuò)條件負(fù)載均衡變得容易容易作緩存處理無狀態(tài)性的優(yōu)勢(shì):對(duì)于客戶端不需要重復(fù)前面的狀態(tài)操作可以在新的會(huì)話中直接進(jìn)入某個(gè)狀態(tài)REST要求把狀態(tài)保存在客戶端,并且發(fā)給服務(wù)器的每個(gè)請(qǐng)求中都包含這些狀態(tài)。Restful
WebServicesREST關(guān)鍵原則使用標(biāo)準(zhǔn)方法(http)使應(yīng)用成為Web的一部分添加到Web中更多的資源Restful
WebServicesREST關(guān)鍵原則如果不使用標(biāo)準(zhǔn)方法(http)如果客戶端程序試圖使用這些服務(wù),那它必須針對(duì)這些特定接口進(jìn)行編碼只貢獻(xiàn)一個(gè)端點(diǎn),“一個(gè)非常小的門,僅僅允許有鑰匙的人進(jìn)入其中的資源域”Restful
WebServicesREST關(guān)鍵原則資源多重表述同一個(gè)資源的不同表述,可以有利于不同的客戶端。資源不僅可以被你的應(yīng)用所用,還可以被任意標(biāo)準(zhǔn)Web瀏覽器所用GET/customers/1234HTTP/1.1
Host:
Accept:application/vnd.mycompany.customer+xmlGET/customers/1234HTTP/1.1
Host:
Accept:text/x-vcardRestful
WebServicesREST
WebServices實(shí)現(xiàn)步驟示例:圖書管理定義資源:圖書URI設(shè)計(jì):/books(所有圖書),/books/{id}(特定圖書)HTTP方法:使用GET讀取圖書,使用POST創(chuàng)建新圖書,使用PUT更新圖書信息,使用DELETE刪除圖書。狀態(tài)碼:使用200OK表示成功,使用201Created表示資源成功創(chuàng)建,404NotFound表示資源未找到,使用400BadRequest表示客戶端請(qǐng)求錯(cuò)誤,如請(qǐng)求的消息體不是有效的JSON格式。消息格式:使用JSON表示資源。每個(gè)資源的JSON表示中將包含與之相關(guān)的一組鏈接,以指導(dǎo)客戶端如何進(jìn)行可能的下一步操作。HATEOAS的體現(xiàn):在每個(gè)資源的表示中,將包含一組控制信息,這些信息將以鏈接的形式出現(xiàn),Restful
WebServicesREST
WebServices的OpenAPI規(guī)范之前稱為Swagger規(guī)范,是一種與語言無關(guān)的描述格式,用于描述RESTfulAPI的接口openapi:指定所使用的OpenAPI規(guī)范版本。info:提供API的元數(shù)據(jù),如版本、標(biāo)題、描述等。servers:定義API的基本URL和服務(wù)器描述。paths:定義具體的端點(diǎn)(URLs)和在這些端點(diǎn)上可以進(jìn)行的操作(如GET、POST等),每個(gè)操作都可以定義輸入和輸出。components:用于描述請(qǐng)求、響應(yīng)、參數(shù)、安全方案等復(fù)用組件。security:定義全局安全方案。Restful
WebServicesREST
WebServices的Swagger軟件框架API設(shè)計(jì):使用Swagger編輯器,如SwaggerEditor,可以支持開發(fā)者編寫OpenAPI規(guī)范的YAML或JSON文件,以定義API的結(jié)構(gòu)。這個(gè)過程支持API驅(qū)動(dòng)的設(shè)計(jì)。可視化API文檔:SwaggerUI可以將規(guī)范文件渲染成一個(gè)可視化的可交互API文檔。代碼生成:SwaggerCodegen可以使用API定義來自動(dòng)生成服務(wù)器存根、客戶端庫(kù)和API文檔等。API測(cè)試:Swagger提供了測(cè)試工具,如SwaggerInspector,用于測(cè)試API的有效性和調(diào)試。Restful
WebServicesREST
WebServices的Swagger軟件框架本地下載并部署swagger-uinpminstallswagger-ui-express–saveRestful
WebServicesRestfulWebServices應(yīng)用示例Restful
WebServicesRestfulWebServices應(yīng)用示例百度智能云千帆大模型平臺(tái):/GraghQL由FaceBook于2015年發(fā)布的一種API查詢語言。SQL是一種數(shù)據(jù)庫(kù)的查詢語言,而GraphQL則是一種互聯(lián)網(wǎng)查詢語言。解決Under-fetching&Over-fetchingUnder-fetching:單次請(qǐng)求不足以獲取所有數(shù)據(jù)Over-fetching:一次請(qǐng)求中獲得了太多數(shù)據(jù)GraphQL的JS參考實(shí)現(xiàn)graphql.js服務(wù)端庫(kù)還可以采用?C#/.NET?Go?Java?JavaScript:Apollo(也有對(duì)應(yīng)Vue的實(shí)現(xiàn))?Kotlin?Python?……GraghQL聲明式數(shù)據(jù)獲取語言:在服務(wù)端定義一個(gè)schema,在schema中聲明各個(gè)數(shù)據(jù)類型及其所具有的字段。在查詢中則聲明其所需查詢的字段,并支持對(duì)某一字段的返回值類型進(jìn)行次級(jí)查詢。設(shè)置GraphQL接口從RESTfulAPI獲取數(shù)據(jù)是使用GraphQL的最有效方法。GraghQLGraphQL是一種強(qiáng)類型的動(dòng)態(tài)類型查詢語言:Schema定義所有的數(shù)據(jù)類型和查詢GraghQL客戶端查詢:Relay是Facebook開發(fā)的客戶端庫(kù)Apollo是由Meteor開發(fā)組開發(fā)的,并由社區(qū)驅(qū)動(dòng)的客戶端庫(kù)SWAPI(https://graphql.github.io/swapi-graphql/)GraghQL客戶端查詢:/根類型,代表了查詢文檔的根節(jié)點(diǎn)。需要的字段用大括號(hào)括起來,稱為選擇集。GraphQL帶有5種內(nèi)置的標(biāo)量類型:整數(shù)(Int)、浮點(diǎn)數(shù)(Float)、字符串(String)、布爾值(Boolean)和唯一標(biāo)識(shí)符(ID)。GraghQL客戶端查詢:/GraphQL對(duì)象類型是schema中定義的一個(gè)或多個(gè)字段的組,定義了應(yīng)當(dāng)返回的JSON對(duì)象的形式。一些關(guān)于“Jazz-Cat”纜車的數(shù)據(jù)。capacity是標(biāo)量類型,trailAccess字段的類型是Trail(對(duì)象類型)。這個(gè)操作查詢了兩種類型數(shù)據(jù)(lifts和trails)之間的一對(duì)多連接。GraghQL服務(wù)端Schema:可以查詢的數(shù)據(jù)接口是一種抽象類型,它構(gòu)建的是在類似對(duì)象類型中應(yīng)實(shí)現(xiàn)的字段列表。GraghQL服務(wù)端Schema每一個(gè)GraphQL服務(wù)都有一個(gè)query類型:查詢可能有一個(gè)mutation類型:變更GraghQL服務(wù)端Resolvers:解析器GraghQL運(yùn)行服務(wù)端GraghQL前端:QueryGraghQLGraphiQL:GraphQL的“IDE”GraghQLGraphiQL:GraphQL的“IDE”
微服務(wù)微服務(wù)架構(gòu)的概念
微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),每個(gè)服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)間采用輕量級(jí)的通信機(jī)制互相溝通(通常是基于HTTP協(xié)議的RESTfulAPI)。每個(gè)服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立的部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。組件化彈性架構(gòu)去中心化快速響應(yīng)
微服務(wù)軟件架構(gòu)的演變單體架構(gòu)與微服務(wù)架構(gòu)
微服務(wù)單體架構(gòu)與微服務(wù)架構(gòu)單體架構(gòu)單體架構(gòu)的特點(diǎn)(1)所有功能集成在一個(gè)工程項(xiàng)目中。(2)所有功能打包成一個(gè)war文件或jar文件。(3)通過部署應(yīng)用集群進(jìn)行應(yīng)用擴(kuò)容以提高性能。
微服務(wù)單體架構(gòu)的優(yōu)點(diǎn)(1)項(xiàng)目架構(gòu)簡(jiǎn)單。(2)前期開發(fā)成本低,周期短。(3)部署簡(jiǎn)單。單體架構(gòu)的缺點(diǎn)(1)開發(fā)效率低:所有的開發(fā)人員在一個(gè)項(xiàng)目中編寫代碼,提交代碼容易出現(xiàn)沖突。(2)代碼維護(hù)難:各功能代碼耦合在一起,新加入的開發(fā)人員學(xué)習(xí)難度較大。(3)部署不靈
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度倉(cāng)儲(chǔ)物流供應(yīng)鏈管理與運(yùn)輸服務(wù)合同3篇
- 2024版土地免租租賃合同范本
- 二零二五年度旋挖鉆機(jī)在城市地鐵建設(shè)中的應(yīng)用合同3篇
- 二零二五年度豪華家裝主材代購(gòu)服務(wù)協(xié)議3篇
- 專業(yè)版融資擔(dān)保協(xié)議2024年版詳盡條款一
- 2024年電商渠道聯(lián)合運(yùn)營(yíng)協(xié)議版B版
- 二零二五年度甲乙雙方合作供應(yīng)新能源設(shè)備協(xié)議2篇
- 二零二五版汽車行業(yè)人才培訓(xùn)股份購(gòu)買與就業(yè)服務(wù)合同3篇
- 2024新疆瓜果種植基地與電商平臺(tái)合作分紅協(xié)議3篇
- 二零二五版礦產(chǎn)廢石采購(gòu)及再生利用合作協(xié)議3篇
- 米-伊林《十萬個(gè)為什么》閱讀練習(xí)+答案
- 碎屑巖油藏注水水質(zhì)指標(biāo)及分析方法
- 【S洲際酒店婚禮策劃方案設(shè)計(jì)6800字(論文)】
- 醫(yī)養(yǎng)康養(yǎng)園項(xiàng)目商業(yè)計(jì)劃書
- 《穿越迷宮》課件
- 《C語言從入門到精通》培訓(xùn)教程課件
- 2023年中國(guó)半導(dǎo)體行業(yè)薪酬及股權(quán)激勵(lì)白皮書
- 2024年Minitab全面培訓(xùn)教程
- 社區(qū)電動(dòng)車棚新(擴(kuò))建及修建充電車棚施工方案(純方案-)
- 項(xiàng)目推進(jìn)與成果交付情況總結(jié)與評(píng)估
- 鐵路項(xiàng)目征地拆遷工作體會(huì)課件
評(píng)論
0/150
提交評(píng)論