中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

視覺做的比較好的國外網(wǎng)站北京seo排名服務

視覺做的比較好的國外網(wǎng)站,北京seo排名服務,外貿(mào)公司如何運營,如何直到網(wǎng)站是用什么模板做的背景 用戶體驗不斷提升而3對實時數(shù)據(jù)的需求日益增長,傳統(tǒng)的數(shù)據(jù)獲取方式無法滿足實時數(shù)據(jù)的即時性和個性化需求。 GraphQL作為新興的API查詢語言,提供更加靈活、高效的數(shù)據(jù)獲取方案。結合Spring Boot作為后端框架,利用GraphQL實現(xiàn)實時數(shù)據(jù)推…
背景

用戶體驗不斷提升而3對實時數(shù)據(jù)的需求日益增長,傳統(tǒng)的數(shù)據(jù)獲取方式無法滿足實時數(shù)據(jù)的即時性和個性化需求。
GraphQL作為新興的API查詢語言,提供更加靈活、高效的數(shù)據(jù)獲取方案。結合Spring Boot作為后端框架,利用GraphQL實現(xiàn)實時數(shù)據(jù)推送,滿足對實時數(shù)據(jù)的需求。

一、GraphQL簡介

GraphQL是一種用于API的查詢語言,核心思想是讓客戶端能夠根據(jù)自身需求精確地獲取所需的數(shù)據(jù),而不是像傳統(tǒng)的RESTful API那樣只能獲取整個資源對象。GraphQL的特點包括:

(1)靈活性:客戶端可以精確指定所需的數(shù)據(jù)字段,而不是被限制于服務器端提供的固定數(shù)據(jù)結構。
(2)效率:減少了不必要的數(shù)據(jù)傳輸和處理,提高了數(shù)據(jù)獲取效率。
(3)類型系統(tǒng):GraphQL具有嚴格的類型系統(tǒng),能夠在編譯階段檢測出潛在的錯誤,提高了開發(fā)效率。
二、實現(xiàn)

在Spring Boot中集成GraphQL可以通過GraphQL Java庫來實現(xiàn)。在pom.xml文件中添加GraphQL Java庫的依賴:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-graphql</artifactId><version>2.7.9</version>
</dependency>

YAML配置:

spring:graphql:graphiql:enabled: truewebsocket:path: /graphqlschema:printer:enabled: truelocations: classpath:schema   #test.graphql文件位置file-extensions: .graphql

test.graphql文件:

#測試接口
#第一個graphql文件的type Mutation前不需要添加extend
type Mutation {#新增測試saveTest(testDto: TestDto):Boolean
}#第一個graphql文件的type Query前不需要添加extend
type Query {#獲取列表測試getTestList(name: String!):[TestVo]
}#請求參數(shù)
input TestDto{"""ID"""id: Int!"""名稱"""name: String!"""標題"""title: String"""備注"""remarks: String
}#返回參數(shù)
type TestVo{"""ID"""id: Int"""名稱"""name: String"""標題"""title: String"""備注"""remarks: String
}

測試TestController接口:

/*** 測試TestController*/
@Slf4j
@RestController
public class TestController {/*** 新增測試* @return true:成功; false:失敗*/@MutationMappingpublic Mono<Boolean> saveTest(@Argument Test test) {log.info("新增測試,請求參數(shù):{}", JSON.toJSONString(test));return Mono.just(true);}/*** 獲取列表測試* @param name* @return*/@QueryMappingpublic Mono<List<Test>> getTestList(@Argument String name) {log.info("獲取列表測試,請求參數(shù):{}", name);List<Test> tests = new ArrayList<>();Test test1 = new Test();test1.setId(1);test1.setName("測試1");test1.setTitle("標題1");test1.setRemarks("備注1");tests.add(test1);Test test2 = new Test();test2.setId(2);test2.setName("測試2");test2.setTitle("標題2");test2.setRemarks("備注2");tests.add(test2);return Mono.just(tests);}
}

結果:
在這里插入圖片描述

第二種集成方式:
在pom.xml文件中添加GraphQL Java庫的依賴:

<dependency><groupId>com.graphql-java-kickstart</groupId><artifactId>graphql-spring-boot-starter</artifactId><version>11.1.0</version>
</dependency>

然后定義GraphQL Schema,包括類型定義和查詢操作。假設有一個簡單的數(shù)據(jù)模型Message:

public class Message {private String id;private String content;// Getters and setters
}

接下來定義GraphQL查詢操作和Resolver。假設要實現(xiàn)一個查詢,用于獲取所有消息列表:

@Component
public class GraphQLQueryResolver implements GraphQLQueryResolver {private List<Message> messages = new ArrayList<>();public List<Message> getMessages() {return messages;}
}

然后需要配置GraphQL Endpoint,使客戶端可發(fā)送GraphQL請求。在application.properties文件中添加以下配置:

graphql.servlet.mapping=/graphql

最后啟動Spring Boot應用,GraphQL Endpoint將會監(jiān)聽客戶端的請求并返回相應的數(shù)據(jù)。

對于實時數(shù)據(jù)推送,可以使用GraphQL的訂閱(Subscription)功能。假設實現(xiàn)一個訂閱,用于實時推送新消息。首先,定義一個訂閱類型和對應的Resolver:

@Component
public class GraphQLSubscriptionResolver implements GraphQLSubscriptionResolver {public Publisher<Message> newMessage() {//返回發(fā)出新消息的發(fā)布者return newPublisher -> {//可以在這里實現(xiàn)發(fā)出新消息的邏輯//簡化為每秒發(fā)出一條新消息ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);executorService.scheduleAtFixedRate(() -> {Message message = // 生成新消息的邏輯newPublisher.onNext(message);}, 0, 1, TimeUnit.SECONDS);};}
}

然后,更新GraphQL Schema,添加訂閱類型:

@GraphQLSchema
public class MyGraphQLSchema {@Beanpublic GraphQLSchema schema(GraphQLQueryResolver queryResolver,GraphQLSubscriptionResolver subscriptionResolver) {return SchemaParser.newParser().file("graphql/schema.graphqls") // 您的 GraphQL 架構文件.resolvers(queryResolver, subscriptionResolver).build().makeExecutableSchema();}
}

在GraphQL Schema文件中,定義新的訂閱類型:

type Subscription {newMessage: Message!
}

現(xiàn)在,客戶端可以通過訂閱newMessage來實時接收新的消息。當有新消息時,服務器端將會自動推送給客戶端。

三、使用場景

(1)實時監(jiān)控系統(tǒng):在監(jiān)控系統(tǒng)中,可以利用GraphQL實時獲取服務器、應用程序等的狀態(tài)信息,并實時推送給用戶。
(2)社交網(wǎng)絡應用:在社交網(wǎng)絡應用中,可以利用GraphQL實時獲取用戶的動態(tài)、消息等信息,并實時推送給關注的用戶。
(3)在線游戲應用:在在線游戲應用中,可以利用GraphQL實時獲取游戲狀態(tài)、玩家位置等信息,并實時推送給玩家。
(4)股票交易系統(tǒng):在股票交易系統(tǒng)中,可以利用GraphQL實時獲取股票價格、交易量等信息,并實時推送給交易員。

http://m.risenshineclean.com/news/48249.html

相關文章:

  • 百度推廣電話客服湖南靠譜的關鍵詞優(yōu)化哪家好
  • 網(wǎng)站制作哪個軟件網(wǎng)站查詢域名
  • 深圳企業(yè)公司做網(wǎng)站手機優(yōu)化大師下載
  • 權重域名做網(wǎng)站有用么培訓機構是干什么的
  • 企業(yè)網(wǎng)絡營銷實施方案seo優(yōu)化前景
  • 有什么免費的wordpresswindows優(yōu)化大師是系統(tǒng)軟件嗎
  • 有什么網(wǎng)站可以接設計做網(wǎng)站運營需要多少錢
  • 怎樣做網(wǎng)站的鏈接百度競價優(yōu)缺點
  • 企業(yè)的所得稅費用怎么算沈陽關鍵字優(yōu)化公司
  • 學校網(wǎng)站建設計劃湖南專業(yè)關鍵詞優(yōu)化服務水平
  • 建設購物網(wǎng)站的條件百度競價推廣代運營公司
  • 網(wǎng)頁設置如何優(yōu)化百度seo排名
  • 溫州做網(wǎng)站掌熊號seo網(wǎng)站查詢
  • 丹陽做公司網(wǎng)站sem優(yōu)化師
  • 常州網(wǎng)站設計湛江公司電話網(wǎng)絡營銷推廣的基本手段
  • 辦公門戶網(wǎng)站模板簡單的網(wǎng)頁設計
  • 家庭網(wǎng)絡做網(wǎng)站站長工具seo綜合查詢廣告
  • 蘭州優(yōu)化網(wǎng)站媒體資源網(wǎng)
  • 深圳裝修公司網(wǎng)站熱點新聞事件素材
  • 贛州網(wǎng)站建設聯(lián)系方式寧德市地圖
  • 游戲抽獎網(wǎng)站用java怎么做北京朝陽區(qū)
  • 搭建網(wǎng)站程序網(wǎng)站點擊量與排名
  • 網(wǎng)站代碼多彩經(jīng)典模板網(wǎng)站建設
  • 企業(yè)網(wǎng)站只做英文網(wǎng)站搜什么關鍵詞
  • 服務器上如何做網(wǎng)站電商運營seo
  • 尋找武漢手機網(wǎng)站建設精準引流推廣公司
  • 網(wǎng)站建設字體顏色代碼網(wǎng)絡推廣外包業(yè)務銷售
  • 網(wǎng)店代理靠譜嗎鄭州好的seo外包公司
  • 廈門網(wǎng)頁網(wǎng)絡營銷優(yōu)化推廣公司
  • 怎么做專門賣二手衣服的網(wǎng)站域名批量查詢工具