这是我当前的虚拟POST登录功能。我想读取public Response loginPost()
中的请求标头。可能吗?我尝试例如更改函数参数,但总是得到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!
}
}
答案 0 :(得分:0)
此自动生成的类无法访问http标头。相反,必须去src/gen/java/io/swagger/api/myApi.java
并执行以下操作
import javax.ws.rs.core.HttpHeaders;
@Context HttpHeaders requestHeaders
@Context
然后更新同一文件夹中的myApiService.java
文件,当然也更新myApiServiceImpl.java
中的src/main/java/io/swagger/api/impl/
文件,以便它们都导入javax.ws.rs.core.HttpHeaders
并将其作为参数。在后一种情况下也不要使用@Context
。
通常的想法是首先更改myApi.java
文件,使其传递请求标头,然后更新使用请求功能的所有文件(如果无法完全理解它们,编译器错误将指导您)