Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案
PaddleOCR的Restful API服务部属
Docker化部署服务
PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本)
Maven
org.springframework.cloud spring-cloud-dependencies Hoxton.SR8 pom import com.alibaba.cloud spring-cloud-alibaba-dependencies 2.2.5.RELEASE pom import org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-openfeign org.projectlombok lombok true cn.hutool hutool-all 5.5.8
解决方案
OpenFeign调用接口
@FeignClient(name="OCRService", url="127.0.0.1:8866")
public interface IOCRService {@RequestMapping(value = "/predict/ocr_system",method = RequestMethod.POST)Object ocr(ImageDTO images);
}
接口参数DTO封装
@Data
public class ImageDTO {private List images;
}
Controller
@RestController
public class OCRController {private final IOCRService iocrService;public OCRController(IOCRService iocrService) {this.iocrService = iocrService;}@RequestMapping(value = "/ocr",method = {RequestMethod.POST})public Object ocr(MultipartFile[] file){try {String s =ImageBase64Encoder.encode(file[0].getInputStream());List list = new ArrayList<>();list.add(s);ImageDTO dto= new ImageDTO();dto.setImages(list);return iocrService.ocr(dto);} catch (IOException e) {e.printStackTrace();}return null;}
}
工具类:
import cn.hutool.core.codec.Base64Encoder;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Objects;/*** 图片Base64编码*/ public class ImageBase64Encoder {/*** 将图片转为Base64编码字符串* @param imgPath 图片路径* @return Base64编码字符串*/public static String encode(String imgPath) throws FileNotFoundException {return encode(new FileInputStream(imgPath));}/*** 将图片转为Base64编码字符串* @param in 图片输入流* @return Base64编码字符串*/public static String encode(InputStream in) {byte[] data = null;// 读取图片字节数组try {data = new byte[in.available()];int res = in.read(data);in.close();} catch (IOException e) {e.printStackTrace();}/**对字节数组Base64编码*返回Base64编码过的字节数组字符串;*/return Base64Encoder.encode(Objects.requireNonNull(data));}}
参考文章
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
