jax-rs示例

简介: compile 'org.glassfish.jersey.core:jersey-client:2.9.1'   @Path("/{appId}/{env}/downloadSDK") @GET @Produces(MediaType.

 

compile 'org.glassfish.jersey.core:jersey-client:2.9.1'

 

@Path("/{appId}/{env}/downloadSDK")
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
Response downloadSDK(@PathParam("appId") String appId, @PathParam("env") Integer env, @DefaultValue("javascript") String language);

 

@Override
public Response downloadSDK(String appId, Integer env, String language) {
    //swagger json url 待处理
    return generateSDK.generateSDK("http://petstore.swagger.io/v2/swagger.json", language);
}

 

public Response generateSDK(String swaggerjsonUrl, String language) {
    GeneratorInput generatorInput = new GeneratorInput();
    generatorInput.setSwaggerUrl(swaggerjsonUrl);
    try {
        String fileName = Generator.generateClient(language, generatorInput);
        if (StringUtils.isNotEmpty(fileName)) {
            File file = new java.io.File(fileName);
            byte[] bytes = org.apache.commons.io.FileUtils.readFileToByteArray(file);
            try {
                FileUtils.deleteDirectory(file.getParentFile());
            } catch (Exception e) {
                System.out.println("failed to delete file " + file.getAbsolutePath());
            }
            return Response
                    .ok(bytes, "application/zip")
                    .header("Content-Disposition",
                            "attachment; filename=\"" + language + "-client-generated.zip\"")
                    .header("Accept-Range", "bytes").header("Content-Length", bytes.length).build();
        } else {
            return Response.status(Response.Status.NOT_FOUND).build();
        }
    } catch (Exception e) {
        e.printStackTrace();
        return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
    }
}

 

目录
相关文章
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
456 63
|
消息中间件 API 开发工具
云速搭助力用友 BIP 平台快速接入阿里云产品
通过与阿里云合作,用友 BIP 集成了多款云产品,实现了快速集成、稳定可靠的一体化解决方案,显著提升了企业资源管理效率和业务灵活性。
303 100
|
机器学习/深度学习 人工智能 算法
打造你的超级Agent智能体——在虚拟迷宫中智斗未知,解锁AI进化之谜的惊心动魄之旅!
【10月更文挑战第5天】本文介绍了一个基于强化学习的Agent智能体项目实战,通过控制Agent在迷宫环境中找到出口来完成特定任务。文章详细描述了环境定义、Agent行为及Q-learning算法的实现。使用Python和OpenAI Gym框架搭建迷宫环境,并通过训练得到的Q-table测试Agent表现。此项目展示了构建智能体的基本要素,适合初学者理解Agent概念及其实现方法。
529 9
|
NoSQL 测试技术 Redis
第一次面试总结 - 迈瑞医疗 - 软件测试
本文是作者对迈瑞医疗软件测试岗位的第一次面试总结,面试结果非常好,但面试过程中没有提问太多技术性问题,主要围绕个人介绍、互相了解、个人规划和项目亮点进行,因此作者认为这次面经的学习意义不大。作者还提到了实习岗位的待遇和工作内容,以及对不同阶段求职者的建议。
479 2
|
Linux Perl
kylinV10SP2切换启动内核
kylinV10SP2切换启动内核
|
Linux 测试技术 API
Linux PWM接口概述 【ChatGPT】
Linux PWM接口概述 【ChatGPT】
|
数据采集 传感器 监控
LabVIEW Windows与RT系统的比较与选择
LabVIEW Windows与RT系统的比较与选择
403 1
|
监控 虚拟化 Docker
【面试宝藏】容器技术详解其二
了解Docker和容器化技术的关键概念:Docker Image是运行容器的基础,由多个只读Layer组成;虚拟化技术在物理硬件上创建虚拟资源;Docker Swarm是集群管理和编排工具;容器比虚拟机轻量级,启动快;Dockerfile中的ONBUILD用于子镜像构建时执行命令;在非Linux系统上,Docker依赖虚拟化技术运行;容器化利用命名空间和Cgroups提供隔离;容器化启动快、扩展性好,但隔离性较弱;虚拟化安全、隔离性强,但资源开销大。通过多阶段构建、环境变量和卷适应不同环境。Docker Compose快速启动服务,依赖服务通过健康检查自我调整。
288 2
|
机器学习/深度学习 存储 人工智能
未来智能运维的发展趋势与挑战
随着信息技术的迅猛发展,智能运维作为关键的技术领域正日益受到重视。本文探讨了未来智能运维的发展趋势和所面临的挑战,从人工智能、自动化运维、数据分析等方面展望了未来智能运维的发展方向,同时也指出了在实践中需要克服的困难和挑战。
1100 28
|
人工智能 物联网 数据安全/隐私保护
操作系统的演变与未来:从单一到多元的演进之路
本文旨在探索操作系统的演化历程及其对未来技术发展的影响。通过分析不同时代的操作系统特点,我们能够理解现代操作系统设计的复杂性和多样性。文章将重点讨论操作系统如何适应新的硬件架构、满足日益增长的性能需求,并应对安全性和隐私保护的挑战。最后,我们将展望操作系统的未来发展趋势,包括人工智能和物联网等新兴技术的融合。
576 0