【问题标题】:Grails- RESTful web services with pdf attachments?Grails-带有pdf附件的RESTful Web服务?
【发布时间】:2013-04-18 07:01:46
【问题描述】:

我必须为消费者和提供者实现 Grails RESTful Web 服务。 提供者必须返回 pdf 文档,消费者必须对其进行处理并将其保存到数据库中。 作为提供者如何使用 grails rest 服务返回 pdf 文档。 我在肥皂网络服务中使用了 MTOM 来实现这一点,但不确定如何在 Grails 休息服务中实现。

请建议我如何使用一些示例代码来实现这一点。

谢谢

【问题讨论】:

    标签: grails restful-architecture groovyws


    【解决方案1】:

    这是我所做的,这也是你可以为制作人做的

    >  def boas = callservicetogenerateReport // this should return an
    > byteArray
    >         // setting the content type
    >         response.setContentType("application/pdf");
    >         response.setHeader("Content-Disposition", "attachment;filename=sample.pdf")
    >         response.setContentLength(boas.size());
    >         // write ByteArrayOutputStream to the ServletOutputStream
    >         response.outputStream << boas.toByteArray()
    >         response.outputStream.flush()
    >         response.outputStream.close()
    

    对于消费者,这是我在休息调用中所做的,它实际上处理用户通过帖子提交文件。

    request.multiFileMap."files[]".each {file ->
                    def newFile = new Expando(name: file.originalFilename, size: file.size)
                    callServicetoAddFileToDB(file)
      }
    

    希望对你有帮助

    【讨论】:

    • 关于消费者 - 作为消费者,我要发送请求数据并且需要从提供者那里获取 PDF。@Producer:你认为我必须写它来响应,而不是我可以在 byyearray 中获取 PDF 作为响应,不是吗?
    • 来自消费者,您是否向提供者发布文件?
    • 问题 - 用户将如何选择要发送的文件?
    • 用户(消费者)不要选择任何文件,提供者必须根据从消费者那里收到的请求标准返回一个 pdf 生成的文件。消费者收到文件后,会将其存储到数据库中。
    • 所以如果是这样的话,就按照我为制作人所做的来做吧。我在哪里说 callServiceTogenerateReport()。这将是对您的应用程序的 http 调用,它只会将数据写入响应流。然后,您的代码实际上会从输出流中选择文件并再次将其写回消费者应用程序的响应流。这是一个示例groovy.codehaus.org/modules/http-builder/apidocs/index.html
    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多