feign匹配动态的url


package org.fool.feign.client;
import org.fool.feign.config.FeignConfiguration;
import org.fool.feign.contract.request.DemoRequest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.net.URI;

@FeignClient(name = "ORDER-SERVICE", url = "url-placeholder",
        fallbackFactory = OrderClient.OrderClientFallbackFactory.class, configuration = FeignConfiguration.class)
public interface OrderClient {

    @PostMapping(value = "/demo")
    String queryOrder(URI uri, @RequestBody DemoRequest orderRequest);

    @Component
    class OrderClientFallbackFactory extends AbstractFallbackFactory<OrderClient> {
        @Override
        public OrderClient create(Throwable throwable) {
            return new OrderClient() {
                @Override
                public String queryOrder(URI uri, DemoRequest orderRequest) {
                    String message = "failed to query_order with " + orderRequest + " url: " + uri.toString();
                    return handleExceptions(throwable, message);
                }
            };
        }
    }
}

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM