gpt4 book ai didi

java - 无法弄清楚如何访问由 swagger 自动生成的 jaxrs 服务器中的请求 header

转载 作者:行者123 更新时间:2023-12-01 18:30:35 33 4
gpt4 key购买 nike

这是我当前的虚拟 POST 登录功能。我想读取 public Response loginPost() 内的请求 header 。是否可以?例如,我尝试更改函数参数,但我总是得到 io.swagger.api.impl.LoginApiServiceImpl is not abstract and does not override abstract method loginPost(io.swagger.model.LoginPostRequestBody,javax.ws.rs.core.SecurityContext) in io.swagger.api.LoginApiService

package io.swagger.api.impl;

import io.swagger.api.*;
import io.swagger.model.*;

import io.swagger.model.LoginPost200Response;
import io.swagger.model.LoginPostRequestBody;

import java.util.Map;
import java.util.List;
import io.swagger.api.NotFoundException;

import java.io.InputStream;

import org.glassfish.jersey.media.multipart.FormDataContentDisposition;

import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.validation.constraints.*;

@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaJerseyServerCodegen", date = "2020-01-21T12:31:41.554Z[GMT]")public class LoginApiServiceImpl extends LoginApiService {
@Override
public Response loginPost(LoginPostRequestBody body, SecurityContext securityContext) throws NotFoundException {
// do some magic!
}
}

最佳答案

此自动生成的类无法访问 http header 。相反,必须转到 src/gen/java/io/swagger/api/myApi.java 并执行以下操作

  1. 导入 javax.ws.rs.core.HttpHeaders;
  2. 编辑文件最后部分的响应函数,使其 也采用此参数@Context HttpHeaders requestHeaders
  3. 改变最后的异常代码,那里的函数也 需要采用上述参数(在本例中没有 @Context)

然后更新同一文件夹中的 myApiService.java 文件,当然还有 src/main/java/io/swagger/中的 myApiServiceImpl.java 文件api/impl/,以便它们导入并采用 javax.ws.rs.core.HttpHeaders 作为参数。在后一种情况下也不要使用 @Context

总体思路是首先更改myApi.java文件,使其传递请求头,然后更新所有使用请求函数的文件(如果你不能全部弄清楚,编译器错误将指导您)

关于java - 无法弄清楚如何访问由 swagger 自动生成的 jaxrs 服务器中的请求 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60176106/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com