我對(duì)API構(gòu)建相當(dāng)陌生,所以這可能是一個(gè)比我最初提出的更廣泛的問(wèn)題。我正在戈朗中創(chuàng)建一個(gè)API(使用原型buf 3和gRPC),它有兩個(gè)類似的端點(diǎn):獲取 /項(xiàng)目/流派獲取 /項(xiàng)目/{id}問(wèn)題是,當(dāng)我運(yùn)行 時(shí),模式匹配會(huì)導(dǎo)致端點(diǎn)被調(diào)用作為id。有沒(méi)有一些簡(jiǎn)單的方法可以解決這個(gè)問(wèn)題,或者我必須在服務(wù)器代碼中構(gòu)建一些東西來(lái)根據(jù)類型調(diào)用正確的函數(shù)?curl localhost:8080/project/genres/project/{id}genres我還嘗試翻轉(zhuǎn)這些定義的順序,以防萬(wàn)一模式匹配有一些我不知道的操作順序,但這并沒(méi)有區(qū)別。以下是我的原型文件中的定義:message EmptyRequest { }message ProjectRequest { string id = 1;}message GenreResponse { int32 id = 1; string name = 2;}message ProjectResponse { int32 id = 1; string name = 2;}service ProjectService { rpc GetProject(ProjectRequest) returns (ProjectResponse) { option (google.api.http) = { get: "/v1/project/{id}" }; } rpc GetGenres(EmptyRequest) returns (GenreResponse) { option (google.api.http) = { get: "/v1/project/genres" }; }}
構(gòu)建具有重載端點(diǎn)的原型 3 gRPC API
繁星點(diǎn)點(diǎn)滴滴
2022-09-26 14:52:40