【问题标题】:Can I serve 2 APIs similar to StackOverflow using 1 web application?我可以使用 1 个 Web 应用程序提供 2 个类似于 StackOverflow 的 API 吗?
【发布时间】:2016-02-18 02:31:57
【问题描述】:

如果我当前的 API 位于 api.foo.com/v1,/v1 是上下文路径,所有请求都会像这样进入 API servlet:

    <servlet-mapping>
        <servlet-name>SearchServlet</servlet-name>
        <url-pattern></url-pattern>
    </servlet-mapping>

我需要部署另一个应用程序以使 api.foo.com/v2 可用。

我如何重新配置​​我的应用程序/环境以同时处理这两个请求,还是不可能?应用程序是否可以接受所有请求并且 v1 和 v2 是 servlet 或 RESTful 映射?

【问题讨论】:

    标签: tomcat servlets jakarta-ee


    【解决方案1】:

    为什么不创建两个 servlet,一个来处理每个 REST 服务?将此添加到您的 web.xml 文件中:

    <servlet>
        <servlet-name>servletv1</servlet-name>
        <servlet-class>com.stackoverflow.Servletv1</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>servletv2</servlet-name>
        <servlet-class>com.stackoverflow.Servletv2</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>servletv1</servlet-name>
        <url-pattern>/v1/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>servletv2</servlet-name>
        <url-pattern>/v2/*</url-pattern>
    </servlet-mapping>
    

    【讨论】:

    • v1 已经是上下文路径,因此您的方法将导致 api.foo.com/v1/v1 和 api.foo.com/v1/v2。
    • 你为什么不改变你的上下文路径?
    猜你喜欢
    • 2017-11-02
    • 2013-02-08
    • 2021-10-10
    • 2021-10-29
    • 2023-03-07
    • 2021-12-10
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    相关资源
    最近更新 更多