Spring Coud Feignの使い方
1755 ワード
Spring Coudと結合してFeignを使用するステップは以下の通りである.
FeignがSpring Cloudと結合した場合、Sprigmvcで提供される注釈サポートを使用できます. @Get Mapping等
1.Feignサポートをオープンする @EnbaleFeign Clients
Get要求方式:
Get要求を定義する二つの方法を示します.mvcのように@Request Paramを省略してはいけないので、属性名を定義しなければならないことに注意してください.
1.@Request Mappingはインターフェースに注解しないでください.でないと、controllerとして暴露されます.
2.Get要求を使用する場合、パラメータは基本データオブジェクトのみとなり、String、Integer、Map(Userなどの複雑なオブジェクトが入ってくると、Get要求はPost要求に変わります)
3.パラメータは必ず使用してください @Request Paramまたは @PathVarableは注釈を行い、属性名を定義します.さもなければエラーを報告します. no suitable Http Message Coverter found for reponse type[type]and content type[text/plin;charset=UTF-8]
4.Feignで使用する @Request Paramの役割は、要求urlにパラメータを付加することです.uid=1なので、パラメータ名はサービスインターフェースのパラメータと一致していなければなりません.
Feignプロジェクト文書
https://github.com/OpenFeign/feign
FeignがSpring Cloudと結合した場合、Sprigmvcで提供される注釈サポートを使用できます. @Get Mapping等
1.Feignサポートをオープンする @EnbaleFeign Clients
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.Feignインターフェースを定義するGet要求方式:
Get要求を定義する二つの方法を示します.mvcのように@Request Paramを省略してはいけないので、属性名を定義しなければならないことに注意してください.
@FeignClient(Constants.SERVICE_NAME)
public interface ApiClient {
public static final String URL = "/api/user";
@GetMapping(URL + "/get")
User get(@RequestParam("uid") String uid);
@GetMapping(URL + "/get/{uid}")
User show(@PathVariable("uid") String uid);
}
また、Mapでパラメータを構築することもできます.public User get(@RequestParam Map map);
Post要求方式:@PostMapping(URL + "/update")
User update(@RequestBody User user);
サービス:@RestController
public class UserApi {
@PostMapping("/update")
public User update(@RequestBody User user) {
...
}
}
いくつかのピット:1.@Request Mappingはインターフェースに注解しないでください.でないと、controllerとして暴露されます.
2.Get要求を使用する場合、パラメータは基本データオブジェクトのみとなり、String、Integer、Map(Userなどの複雑なオブジェクトが入ってくると、Get要求はPost要求に変わります)
3.パラメータは必ず使用してください @Request Paramまたは @PathVarableは注釈を行い、属性名を定義します.さもなければエラーを報告します. no suitable Http Message Coverter found for reponse type[type]and content type[text/plin;charset=UTF-8]
4.Feignで使用する @Request Paramの役割は、要求urlにパラメータを付加することです.uid=1なので、パラメータ名はサービスインターフェースのパラメータと一致していなければなりません.
Feignプロジェクト文書
https://github.com/OpenFeign/feign