PaddleOCR的Restful API服务部属

Docker化部署服务

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

Maven

    <dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR8</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.5.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--Hutool: A set of tools that keep Java sweet.--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.8</version></dependency></dependencies>

解决方案

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

参考文章

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

  1. ginapi服务器性能,基于gin web框架搭建RESTful API服务

    这篇主要学习go项目中的项目结构.项目规范等知识,ROM采用的database/sql的写法. 1.技术框架 利用的是ginweb框架,然后ROM层选用database/sql,安装mysql驱动.安 ...

  2. Spring Cloud【Finchley】实战-03订单微服务与商品微服务之间的调用

    文章目录 Spring Cloud[Finchley]专栏 概述 HTTP方式之RestTemplate 方式一 (直接使用restTemplate访问URL,url写死) 方式二 (使用LoadBa ...

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

    Docker环境下基于HubServing模式部署Restful API服务(CPU版本) 在日常项目应用中,相信大家一般都会希望能通过Docker技术,把PaddleOCR服务打包成一个镜像,以便在 ...

  4. Docker——基于HubServing部署全套PaddleOCR Restful API服务(CPU版本)

    说明 1.同时部署ocr_det.ocr_cls.ocr_rec.ocr_system 2.基于https://gitee.com/paddlepaddle/PaddleOCR/blob/v2.0.0 ...

  5. spring cloud整合OpenFeign

    spring cloud整合OpenFeign pom.xml配置 <!-- https://mvnrepository.com/artifact/org.springframework.clo ...

  6. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  7. Spring Cloud Alibaba配置实例nacos+sentinel+dubbo实行服务注册、配置中心、熔断限流

    通过Spring Cloud Alibaba相关组件nacos+sentinel+dubbo实行服务注册.配置中心.熔断限流等功能 1.本机安装nacos和sentinel-dashboard服务端 ...

  8. pycharm构建虚拟环境_10分钟,带你用Python构建RESTful API 服务

    1. 前言 上一篇文章,介绍了使用 Java + Spring Boot + MyBatis 构建 RESTful API 的详细步骤:很多小伙伴表示,更愿意用 Python 编写 RESTful A ...

  9. 使用CodeIgniter框架搭建RESTful API服务

    RESTful不仅仅是一套协议标准更是一种设计思路. 在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念 ...

最新文章

  1. 笑傲江湖霍建华版电子相册
  2. python学习笔记(九)——文件和异常(重点)
  3. [转] ROS-I simple_message 源码分析:MessageManager
  4. 解决Ubuntu 14下,PhpStorm 9.x 编辑器界面中文乱码的问题
  5. ddr2和ddr3的区别
  6. 如何写一个高效进程/线程池_关于高效企业测试的思考(1/6)
  7. asp.net后台管理系统-登陆模块-路由权限控制_1
  8. java字符串转字符串数组_Java字符串数组到字符串
  9. python编程else是什么意思_Python编程
  10. 微星主板黑苹果_11.11黑苹果主机金牌装机单(intel篇)
  11. 计算机的硬盘如何查看,怎样查看电脑硬盘信息 电脑中的硬盘信息
  12. softmax回归中最大化似然和最小化交叉熵的等价性
  13. 1. HTML学习笔记-2021年11月2日
  14. matlab计算macd_[原创]基于MATLAB的一个简单的交易策略(基于MACD)的Matlab代码-经管之家官网!...
  15. 视频教程-使用Objective-C进行iOS移动开发-iOS
  16. HTML之CSS层叠样式表
  17. 探索 Word 2007 开发 II(二):引用 Amazon 图书信息
  18. Python_身份证号信息查询
  19. 服务器安装系统鼠标键盘不能用,在Dell计算机上安装Win7系统后,将无法使用USB鼠标和键盘. 完整的解决方案...
  20. 现在还能做淘客吗,晚了吗,还能成功吗

热门文章

  1. 抓包oracle密码,Oracle TNS 协议抓包分析
  2. mysql物流管理系统_wuliuwang 物流信息管理系统 ssh2 mysql(Logistics Information Management System) - 下载 - 搜珍网...
  3. PHP调用tushare,python调用tushare获取沪股通、深股通成份股数据
  4. hadoop 写入mysql_使用MapReducer将文件写入mysql 数据库
  5. python的符号lt和gt怎么输入_lt;lt;Python基础教程gt;gt;学习笔记 | 第12章 | 图形用户界面...
  6. 睢县职教中心计算机专业18年高考 成绩,南模18年高考成绩喜人!想进这所学校,你需要知道这些~...
  7. tp3.2php开启事务,Thinkphp 3.2.3 开启调试模式
  8. vue判断显示隐藏_web前端进阶之【Vue】10分钟掌握Vue 在学Vue的童鞋过来拿资料
  9. 加载dict_Python的dict实现原理和Java的HashMap之间的区别
  10. 【小白学习keras教程】八、Sequential Model和模型函数API两种模型建立方法