首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以通用方式管理任何HTTP请求

问以通用方式管理任何HTTP请求
EN

Stack Overflow用户
提问于 2019-07-10 02:31:12
回答 1查看 54关注 0票数 1

在我的组织中,当我想要公开一个API时,我必须用一个夸张的契约来声明它,任何更新都是一样的,而且可能需要几个星期的时间才能考虑到创建或更改。

这就是为什么我们的想法是只为我们需要公开的所有API声明一个契约,并在一个可应用的反向代理中管理路由(请求将包括必要的元数据以允许路由到适当的端点):

代码语言:javascript
复制
{
  "genericHttpRequest" : base64encodedByteArrayOfAnyHttpRequest
}

现在的问题是:如何在不重新实现HTTP的情况下管理此请求?有没有可能把字节数组放回结构化的HttpServletRequest中?

代码语言:javascript
复制
/**
 * Manage a generic request
 */
@RequestMapping(value = "/genericRequest", method = RequestMethod.POST)
public @ResponseBody void manageGenericRequest(@RequestBody GenericHttpRequestDto body) {

  byte[] genericHttpRequest = body.getGenericHttpRequest();

  //(...)
}
EN

回答 1

Stack Overflow用户

发布于 2019-07-10 03:47:41

如果HttpServletRequest被设置为方法参数,Spring将注入它。此外,通配符路径映射将使方法能够与每个请求相匹配:

代码语言:javascript
复制
@RestController
@RequestMapping("/generic-endpoint/**")
public class DemoController {

    @RequestMapping
    public ResponseEntity<Object> genericGetRequest(HttpServletRequest httpServletRequest) {
        return ResponseEntity.ok().body(httpServletRequest.getMethod());
    }
}

您可以选择返回一个ResponseEntity,以获得对您的HTTP响应的更多控制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56958692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档