solon icon indicating copy to clipboard operation
solon copied to clipboard

任务发放:适配 graphql :graphql-solon-plugin

Open noear opened this issue 2 years ago • 18 comments

效果类似 “graphql-spring-boot-starter”

noear avatar Feb 17 '23 05:02 noear

在支持标准 GraphqQL 的时候,建议同时支持 subscription 可以使用 SSE 方式。

StringKe avatar Jun 20 '23 16:06 StringKe

认领

fuzi1996 avatar Jun 21 '23 13:06 fuzi1996

@noear https://github.com/noear/solon/pull/176 先不要合并,只是为了让你看看,我打算做完batchloader和订阅再一起合并

fuzi1996 avatar Jul 20 '23 14:07 fuzi1996

@fuzi1996 好的!

noear avatar Jul 20 '23 14:07 noear

@StringKe @fuzi1996 关于 SSE ,是 graphgl 的订阅规范之一吗?。。。最近,倒是加了 sse 的支持 :

https://solon.noear.org/article/546

noear avatar Jul 20 '23 14:07 noear

@noear 不是规范之一,是客户端单向订阅的一种选择。

StringKe avatar Jul 20 '23 14:07 StringKe

@noear 目前的实现有个问题,只能对Conmponent注解的类的方法进行拦截,无法对Controller中方法进行拦截,无法复用Controller中的逻辑。有什么好办法吗?

fuzi1996 avatar Jul 26 '23 13:07 fuzi1996

拦截?是可以的

noear avatar Jul 26 '23 13:07 noear

你想不加注解,就拦截?还是加注解进行拦截?

noear avatar Jul 26 '23 13:07 noear

不管怎么样,Controller 都是可以拦截的。。。

noear avatar Jul 26 '23 13:07 noear

你对Conmponent注解的类的,是怎么拦截的。。。放点代码,我看下,然后给你份 controller 拦截的示意代码

noear avatar Jul 26 '23 13:07 noear

你对Conmponent注解的类的,是怎么拦截的。。。放点代码,我看下,然后给你份 controller 拦截的示意代码

https://github.com/fuzi1996/solon/blob/222794a52179e54e5c444ae0bb6272ea7e821676/solon-projects/solon-plugin/graphql-solon-plugin/src/main/java/org/noear/solon/extend/graphql/GraphqlPlugin.java#L42-L49

通过 提取 Bean 的函数进行定制开发 实现

如果使用aop,性能会不会有问题

在spring中只要是在bean中使用Graphql的注解都会生效

fuzi1996 avatar Jul 27 '23 13:07 fuzi1996

原来在这里留的言,我还找了半天:)。。。要不这样,你先只支持 @Component 注解好了。。。你提交后,我再看看,调整下。

noear avatar Jul 27 '23 13:07 noear

你先只支持 @Component 注解吧。。。你提交后,我再看看,如果有必要再调整。

noear avatar Jul 27 '23 13:07 noear

另外。。。就算 spring 所有的 bean 都可以;;;solon 也不一定要对等处理的。。。毕竟是不同框架。。。或许,只限 @Component 更好,也说不定。

//solon 也可以所有 bean 拦取你讲的注解。。。不过我先不提,浪费性能

noear avatar Jul 27 '23 14:07 noear

已完成初步适配

  • 添加queryMutation https://github.com/noear/solon/pull/176
  • 添加batchLoader https://github.com/noear/solon/pull/201
  • 添加Subscription https://github.com/noear/solon-integration/pull/2

fuzi1996 avatar Dec 31 '23 07:12 fuzi1996

@noear 目前graphql使用还有一个问题,就是只能对Component进行aop,无法对Controller,详见: https://github.com/noear/solon/issues/90#issuecomment-1651825157

fuzi1996 avatar Dec 31 '23 07:12 fuzi1996

@noear 目前graphql使用还有一个问题,就是只能对Component进行aop,无法对Controller,详见: #90 (comment)

@fuzi1996 我大概知道原因了。。。你是拿它当组件用是吧?当组件用时,它没有aop功能。。。mvc 用时,会转成 action 此时才会有 aop 功能

noear avatar Dec 31 '23 07:12 noear

已完成。2.8.2

noear avatar Jun 03 '24 14:06 noear