ONLYOFFICE文档集成SDK提供通用接口和默认实现, 用于将ONLYOFFICE文档服务器集成到您自己的Java网站或应用程序中。
SDK由5个主要管理器和4个服务组成。
管理器 | 描述 | 默认实现 |
DocumentManager | 该管理器用于处理文件和文档格式。 | DefaultDocumentManager (抽象) |
RequestManager | 该管理器用于向 ONLYOFFICE 文档服务器发出请求。 | DefaultRequestManager |
JwtManager | 该管理器用于生成和验证授权令牌。 | DefaultJwtManager |
SettingsManager | 该管理器用于管理集成应用程序设置。 | DefaultSettingsManager (抽象) |
UrlManager | 该管理器用作 URL 提供者。 | DefaultUrlManager |
服务 | 描述 | 默认实现 |
ConfigService | 该配置生成服务用于打开文档编辑器。 | DefaultConfigService |
CallbackService | 该服务用于处理文档服务器的响应。 | DefaultCallbackService |
ConvertService | 该服务用于转换文档。 | DefaultConvertService |
SettingsValidationService | 该服务用于检查文档服务器连接设置。 | DefaultSettingsValidationService |
让我们看一下演示示例, 它展示了 SDK 如何在经典 Spring Web 应用程序中工作:
实现抽象DefaultSettingsManager 类的方法:
@Override public String getSetting(final String name) { return properties.getProperty(name); } @Override public void setSetting(final String name, final String value) { properties.setProperty(name, value); }
完整的示例代码可以在 此处找到。
实现抽象 DefaultDocumentManager 类的方法:
@Override public String getDocumentKey(final String fileId, final boolean embedded) { return String.valueOf(fileId.hashCode()); } @Override public String getDocumentName(final String fileId) { return "sample.docx"; }
完整的示例代码可以在 此处找到。
实现 UrlManager 方法。 要在编辑模式下打开编辑器,您需要定义:
@Override public String getFileUrl(final String fileId) { return getServerUrl() + "/file/download"; } @Override public String getCallbackUrl(final String fileId) { return getServerUrl() + "/callback"; }
完整的示例代码可以在 此处找到。
初始化 JwtManager 和 RequestManager Spring bean 并将它们添加到 DI 容器中。 这允许您在应用程序中的任何位置调用注册的 bean:
@Bean public JwtManager jwtManager(final SettingsManager settingsManager) { return new DefaultJwtManager(settingsManager); } @Bean public RequestManager requestManager(final UrlManager urlManager, final JwtManager jwtManager, final SettingsManager settingsManager) { return new DefaultRequestManager(urlManager, jwtManager, settingsManager); }
完整的示例代码可以在 此处找到。
之后,您可以在其默认实现中或通过覆盖和扩展它们来使用所有可用服务:
演示配置服务工作, @GetMapping("/editor") 用于 主控制器。 当用户打开该地址时,会请求编辑器页面。 同时,调用配置服务并生成Config模型以打开编辑器:
@GetMapping("/editor") public String main(final Model model) throws JsonProcessingException { Config config = configService.createConfig("1", Mode.EDIT, Type.DESKTOP); model.addAttribute("config", config); model.addAttribute("documentServerApiUrl", urlManager.getDocumentServerApiUrl()); return "editor"; }