Fegin MultipartFile和@GetMapping 發送對象、@PostMapping 發送多參數

方案一:使用 @SpringQueryMap 註解

註解爲 spring-cloud-openfeign-core jar包下 org.springframework.cloud.openfeign

@SpringQueryMap 註解在一個方法上只能有一個,多個的話只有一個對象可以獲取到值,其它對象爲空

consumes = MediaType.MULTIPART_FORM_DATA_VALUE  指定以表單(multipart/form-data)形式提交,一般上傳文件需要指定

// 客戶端

/**
 * post 上傳文件 同時發送對象
 */
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @SpringQueryMap User user);

/**
 * get 發送對象
 */
@GetMapping("test")
Result<?> upload(@RequestParam Long id, @SpringQueryMap User user);

/**
 * post 發送多參數
 */
@PostMapping("getBaseWorkMsg")
Result<?> manyParam(@RequestParam Long id, @RequestBody TestModel testModel, @SpringQueryMap User user);


// 服務端

/**
 * post 上傳文件 同時發送對象
 */
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @SpringQueryMap User user) {

     Result result = new Result()

     return result;
}

/**
 * get 發送對象
 */
@GetMapping("test")
public Result<?> test(@RequestParam Long id, @SpringQueryMap User user) {

     Result result = new Result()

     return result;
}

/**
 * post 發送多參數
 */
@PostMapping("getBaseWorkMsg")
public Result<?> manyParam(@RequestParam Long id, @RequestBody TestModel testModel, @SpringQueryMap User user) {

     Result result = new Result()

     return result;
}

 

方案二:自定義config

package com.test.config;

import org.springframework.cloud.openfeign.support.AbstractFormWriter;
import org.springframework.cloud.openfeign.support.JsonFormWriter;
import org.springframework.context.annotation.Bean;

/**
 * FeignConfig
 */
@Configuration
public class FeignConfig {

    @Bean
    public AbstractFormWriter jsonFormWriter() {
        return new JsonFormWriter();
    }

}
// 客戶端

/**
 * post 上傳文件 同時發送對象
 */
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @RequestPart User user);

/**
 * post 發送多參數
 */
@PostMapping(value = "getBaseWorkMsg", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<?> manyParam(@RequestParam Long id, @RequestPart TestModel testModel, @RequestPart User user);


// 服務端

/**
 * post 上傳文件 同時發送對象
 */
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @RequestPart User user) {

     Result result = new Result()

     return result;
}

/**
 * post 發送多參數
 */
@PostMapping(value = "getBaseWorkMsg", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<?> manyParam(@RequestParam Long id, @RequestPart TestModel testModel, @RequestPart User user){

     Result result = new Result()

     return result;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章