package com.unisinsight.project.feign; import com.unisinsight.project.config.FeignConfig; import com.unisinsight.project.entity.dto.ApiResponse; import com.unisinsight.project.entity.dto.Network; import com.unisinsight.project.entity.dto.NetworkData; import com.unisinsight.project.entity.dto.StoragePoolData; import com.unisinsight.project.entity.req.NetworkManageReq; import com.unisinsight.project.entity.req.StoragePoolReq; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; /** * 第三方API客户端 */ @FeignClient( name = "external-api-client", url = "${external.api.url:http://10.100.51.118:8000}", configuration = FeignConfig.class ) public interface ExternalApiClient { @PostMapping("/api/v1/network/create") ApiResponse createNetwork(@RequestBody Network network); @DeleteMapping("/api/v1/network/{network_name}") ApiResponse deleteNetwork(@PathVariable("network_name") String networkName); @PostMapping("/api/v1/network/update") ApiResponse updateNetwork(@RequestBody NetworkManageReq networkManageReq); @PostMapping("/api/v1/network/start") ApiResponse startNetwork(@RequestBody NetworkManageReq networkManageReq); @PostMapping("/api/v1/network/stop") ApiResponse stopNetwork(@RequestBody NetworkManageReq networkManageReq); @PostMapping("/api/v1/storage/pools") ApiResponse createStorage(@RequestBody StoragePoolReq storagePoolReq); @PostMapping("/api/v1/storage/pools/start") ApiResponse startStorage(@RequestBody StoragePoolReq storagePoolReq); @PostMapping("/api/v1/storage/pools/stop") ApiResponse stopStorage(@RequestBody StoragePoolReq storagePoolReq); @DeleteMapping("/api/v1/storage/pools/{pool_name}") ApiResponse deleteStorage(@PathVariable("pool_name") String poolName); @GetMapping("/api/v1/network/list") ApiResponse list(@RequestParam("page")int page, @RequestParam("page_size")int pageSize); @GetMapping("/api/v1/storage/pools") ApiResponse listStorage(@RequestParam("page")int page, @RequestParam("page_size")int pageSize); }