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);
                }
            };
        }
    }
}

 

 

 

posted @ 2021-04-28 14:30  *乐途*  阅读(688)  评论(0)    收藏  举报