第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何定義 REST 服務(wù)契約以在多個(gè)類似服務(wù)之間共享使用?

如何定義 REST 服務(wù)契約以在多個(gè)類似服務(wù)之間共享使用?

狐的傳說(shuō) 2022-06-23 19:26:22
我正在用 Java 實(shí)現(xiàn)一系列 REST 微服務(wù)——我們稱它們?yōu)椤斑m配器”。每個(gè)服務(wù)都從特定的源類型讀取數(shù)據(jù),并以相同的方式提供結(jié)果。主要思想是為所有這些提供相同的接口(服務(wù)合同),以獲得可互換性。我想避免代碼重復(fù)并重用服務(wù)的服務(wù)合同??磥?lái)我正在重新發(fā)明輪子。對(duì)此有標(biāo)準(zhǔn)方法嗎?我嘗試以 Java 接口的形式為 Spring MVC Controller 類和隨附的 DAO 類提取服務(wù)合同CustomObject:public interface AdapterController {    @RequestMapping(method = RequestMethod.GET, value = "/objects/{name}")    CustomObject getObject(@PathVariable final String name);}然后將它們放入單獨(dú)的 Maven 項(xiàng)目中,將其設(shè)置為原始項(xiàng)目中的依賴項(xiàng),并重寫(xiě) REST 控制器類,如下所示:@RestControllerpublic class DdAdapterController implements AdapterController {    @Override    public CustomObject getObject(String name) {        return model.getByName(name);    }我也可以在客戶端代碼中重用 DAO 對(duì)象,但是接口類在客戶端是無(wú)用的。1)總結(jié):可以在不同的服務(wù)實(shí)現(xiàn)之間重用/共享服務(wù)契約嗎?這樣做的代價(jià)是什么?是否有共享服務(wù)合同的最佳實(shí)踐?2)下一個(gè)問(wèn)題是關(guān)于服務(wù)合同和消費(fèi)客戶??梢栽诜?wù)和客戶端之間共享合同嗎?Java/方法中有一些工具嗎?
查看完整描述

2 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

這違背了微服務(wù)的心態(tài),從長(zhǎng)遠(yuǎn)來(lái)看,共享代碼是一個(gè)壞主意。

如果您開(kāi)始共享代碼,您將慢慢構(gòu)建一個(gè)分布式單體,其中多個(gè)服務(wù)相互依賴。

之前很多人都討論過(guò)這個(gè)問(wèn)題:

微服務(wù)-不創(chuàng)建-共享庫(kù)

服務(wù)間過(guò)度耦合的弊端遠(yuǎn)比代碼重復(fù)帶來(lái)的問(wèn)題嚴(yán)重

微服務(wù):共享庫(kù) vs 代碼重復(fù)

構(gòu)建微服務(wù)的關(guān)鍵是:

  • 一項(xiàng)服務(wù)應(yīng)該非常擅長(zhǎng)一件事

  • 保持小

  • 有一個(gè)非常有據(jù)可查的 api

  • 當(dāng)您需要?jiǎng)h除一個(gè)微服務(wù)時(shí),應(yīng)該這樣做,因?yàn)楹苌傩枰缕渌?wù)

  • 避免代碼共享,將所有庫(kù)視為 3rd 方庫(kù),甚至是您自己的庫(kù)


查看完整回答
反對(duì) 回復(fù) 2022-06-23
?
qq_花開(kāi)花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

  1. 微服務(wù)應(yīng)該松散耦合 = 最小依賴。

    微服務(wù)是一種架構(gòu)風(fēng)格,它將應(yīng)用程序構(gòu)建為服務(wù)的集合,這些服務(wù)是

    • 高度可維護(hù)和可測(cè)試

    • 松耦合

    • 可獨(dú)立部署

    • 圍繞業(yè)務(wù)能力進(jìn)行組織。

https://microservices.io/

可以使用 WADL 定義合約

  1. 在客戶端和服務(wù)器之間使用契約意味著在實(shí)現(xiàn)客戶端時(shí)更少的錯(cuò)誤,更少的誤解。這就是合同的好處。


查看完整回答
反對(duì) 回復(fù) 2022-06-23
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)