亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Spring Cloud Function 將函數映射到符合 REST 的端點

如何使用 Spring Cloud Function 將函數映射到符合 REST 的端點

慕勒3428872 2023-06-08 14:43:04
我遇到了不尋常且有趣的技術以及使用Spring Cloud Function拆分業務和技術實現的方式,它使java.util.function類的實現充當端點<dependency>? ? <groupId>org.springframework.cloud</groupId>? ? <artifactId>spring-cloud-starter-function-web</artifactId></dependency>簡而言之,有一個簡單的靜態List<Book>表示存儲庫:private final static List<Book> books = Arrays.asList(? ? new Book(1, "One"),? ? new Book(2, "Two"),? ? new Book(3, "Three"));? ??以下@Bean根據方法名稱及其返回類型啟用指定的端點:// GET localhost:8080/books -> returns all the books:@Beanpublic Supplier<List<Book>> books() {? ? return () -> books;}// GET localhost:8080/book/2 -> returns a particular book@Beanpublic Function<Integer, List<Book>> book() {? ? return id -> books.stream().filter(b -> b.getId() == id).collect(Collectors.toList());}// POST localhost:8080/newBook -> posts a new book and returns all of them// Consumer<Book> would supply the POST with no output@Beanpublic Function<Book, List<Book>> newBook() {? ? return book -> {? ? ? ? books.add(book);? ? ? ? return books;? ? };}問題:是否可以使用組合中的一個或多個類來實現完整的 REST 兼容解決方案java.util.function?我只能寫出以上那些。我對以下模式特別感興趣:GET? ? ? ?/booksGET? ? ? ?/books/1POST? ? ? /booksPUT/PATCH /books/1DELETE? ? /books/1GET? ? ? ?/books/1/chapters/2/paragraphs/3如何避免端點的方法名稱沖突,因為所有方法似乎都必須遵循空參數簽名的規則,否則不可自動裝配。我從https://www.baeldung.com/spring-cloud-function開始,它看起來更像是一個RPC 而不是 REST。有沒有辦法識別 URL 參數?GET? ? ? ?/books?sort=name
查看完整描述

1 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

這種方式在他們的官方文檔或博客文章中都沒有明確說明。我不能肯定地說它是為這種用例設計的。

無論如何,在文檔的一部分中。提到以下內容:

函數也可以是 Flux 或 Flux,Spring Cloud Function 負責將數據與所需類型進行相互轉換,只要它以純文本或(在 POJO 的情況下)JSON 形式出現。還支持從傳入事件復制消息標頭的消息,具體取決于適配器。Web Adaptor 還支持從表單編碼數據到 Map 的轉換,如果您將此功能與 Spring Cloud Stream 一起使用,則消息有效負載的所有轉換和強制轉換功能也將適用。

消息可以接受輸入和輸出,并且它還(如文檔中所述)能夠對數據進行編碼以映射到可以存儲查詢參數或標頭參數的位置。


查看完整回答
反對 回復 2023-06-08
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號