lealone-framework
lealone-framework copied to clipboard
lealone-service写服务,要返回文件,请问下services.sql和service类如何写?
方法返回文件,如图片
没有返回文件的数据类型,但是可以在 services.sql 中把服务的返回类型声明成:BINARY、BLOB、CLOB, 此时生成的 service 类对应的方法的返回类型是: byte[]、java.sql.Blob、java.sql.Clob。
还有个问题,返回引用类型如byte[]的话,HTTP请求服务后的响应头中的Content-Type是text/plain或者text/html,所以得到的是这个对象的地址字符串(toString())。请问如何返回正确类型?
还有个问题,返回引用类型如byte[]的话,HTTP请求服务后的响应头中的Content-Type是text/plain或者text/html,所以得到的是这个对象的地址字符串(toString())。请问如何返回正确类型?
如果是通过 http 返回给前端,现在确实是不支持给前端直接返回二进制数据的。 默认 content-type 是 application/json。
目前只有使用 lealone client 调用后端服务(用的是专有协议)才支持返回二进制数据。 后续再看看怎么用 http 协议返回二进制数据。
lealone-service 默认集成了 vert.x,也可以跟 spring boot 集成,lealone-service 现在确实不支持给前端下载文件, 我们自己的应用现在是直接用 vert.x 或 spring boot 来下载文件。
lealone-service 要支持返回二进制数据的话,最终也只是包装一下 vert.x 或 spring boot。
还有个问题,返回引用类型如byte[]的话,HTTP请求服务后的响应头中的Content-Type是text/plain或者text/html,所以得到的是这个对象的地址字符串(toString())。请问如何返回正确类型?
如果是通过 http 返回给前端,现在确实是不支持给前端直接返回二进制数据的。 默认 content-type 是 application/json。
目前只有使用 lealone client 调用后端服务(用的是专有协议)才支持返回二进制数据。 后续再看看怎么用 http 协议返回二进制数据。
lealone-client的api文档有没有?是JDBC执行SQL方式吗?
还有个问题,返回引用类型如byte[]的话,HTTP请求服务后的响应头中的Content-Type是text/plain或者text/html,所以得到的是这个对象的地址字符串(toString())。请问如何返回正确类型?
如果是通过 http 返回给前端,现在确实是不支持给前端直接返回二进制数据的。 默认 content-type 是 application/json。 目前只有使用 lealone client 调用后端服务(用的是专有协议)才支持返回二进制数据。 后续再看看怎么用 http 协议返回二进制数据。
lealone-client的api文档有没有?是JDBC执行SQL方式吗?
可以这样定义服务:
create service if not exists hello_service (
say_hello(name varchar) varchar
) package 'org.lealone.examples.rpc' implement by 'org.lealone.examples.rpc.HelloServiceImpl' generate code './src/main/java';
会自动生成 org.lealone.examples.rpc.HelloService 接口和其他默认实现类,然后像下面这样调用即可:
public static void main(String[] args) {
String url = "jdbc:lealone:tcp://localhost:9210/lealone?user=root";
HelloService helloService = HelloService.create(url);
helloService.sayHello("lealone");
}
这种基于服务接口调用服务的方式内部就是用 lealone-client,但不需要学习 lealone-client 的 API 的。