您准备好观看GraphQL了吗?
在上一篇文章中,我們討論了GraphQL與REST相比的優(yōu)勢(shì)。 在本文中,我們將看到GraphQL的實(shí)際應(yīng)用。 我創(chuàng)建了一個(gè)示例應(yīng)用程序來展示REST和GraphQL之間的差異。 首先,我們將看到簡(jiǎn)單產(chǎn)品詳細(xì)信息終點(diǎn)的REST實(shí)現(xiàn)。 我已經(jīng)使用Spring Boot演示REST。 下載示例項(xiàng)目,并按照README中概述的步驟設(shè)置項(xiàng)目。 我不在這里討論設(shè)置細(xì)節(jié),因?yàn)樗隽吮疚牡姆秶?假設(shè)您的項(xiàng)目已啟動(dòng)并正在運(yùn)行,以調(diào)用http:// localhost:8080 / product / {product_id}端點(diǎn)以獲取產(chǎn)品詳細(xì)信息JSON,如下所示。
如果您在JSON之上看到,雖然我們對(duì)給定產(chǎn)品的所有元素都不感興趣,但我們正在獲取包括評(píng)論和技術(shù)規(guī)格在內(nèi)的整個(gè)產(chǎn)品JSON。
現(xiàn)在,我們將通過有選擇地獲取產(chǎn)品詳細(xì)信息來了解GraphQL的實(shí)際應(yīng)用。 為了再次演示GraphQL,我使用了Spring Boot。 下載示例項(xiàng)目,并按照README中概述的步驟設(shè)置項(xiàng)目。 我不在這里討論設(shè)置細(xì)節(jié),因?yàn)樗隽吮疚牡姆秶?假設(shè)您的項(xiàng)目已啟動(dòng)并正在運(yùn)行,以查看GraphQL的實(shí)際效果。 在這種情況下,我只想獲取給定產(chǎn)品的產(chǎn)品ID,標(biāo)題,簡(jiǎn)短描述和標(biāo)價(jià)。 讓我們看看如何查詢以獲取感興趣的詳細(xì)信息。
現(xiàn)在,作為服務(wù)消費(fèi)者,我有興趣獲取產(chǎn)品ID,標(biāo)題,簡(jiǎn)短描述,標(biāo)價(jià)和評(píng)論。 在這種情況下,GraphQL提供了查詢所需內(nèi)容的靈活性。 當(dāng)我們使用GraphQL時(shí),請(qǐng)參見下面的查詢和響應(yīng)。
為了演示GraphQL,我使用了基于GUI的插件GraphiQL。 為了從其他應(yīng)用程序消費(fèi),我們可以在application.properties中配置端點(diǎn)。
graphql.servlet.mapping=/graphql graphql.servlet.enabled=true graphql.servlet.corsEnabled=true現(xiàn)在,我們可以通過傳遞URL編碼的查詢參數(shù)來調(diào)用上述端點(diǎn),如下所示。 您可以了解有關(guān)查詢和變異的更多信息https://graphql.org/learn/queries/
希望您喜歡這篇文章。 我將再來另一篇文章。 直到那時(shí), 快樂學(xué)習(xí)!!!
翻譯自: https://www.javacodegeeks.com/2019/03/ready-see-graphql-action.html
總結(jié)
以上是生活随笔為你收集整理的您准备好观看GraphQL了吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JMetro版本5.3已发布
- 下一篇: dota电脑出英雄指令(dota 打电脑