Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案

PaddleOCR的Restful API服务部属

Docker化部署服务

PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本) 

Maven

    org.springframework.cloudspring-cloud-dependenciesHoxton.SR8pomimportcom.alibaba.cloudspring-cloud-alibaba-dependencies2.2.5.RELEASEpomimportorg.springframework.bootspring-boot-starter-weborg.springframework.cloudspring-cloud-starter-openfeignorg.projectlomboklomboktruecn.hutoolhutool-all5.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));}}

参考文章


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部