从CSE 1.X 升级到 CSE 2.X后,接口配置的swagger注解@ApiImplicitParams 参数失效
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par org.apache.servicecomb.common.rest.codec.RestCodec#restToArgs et RestOperationMeta#init, puis comparez les chemins de création de types de CSE 1.X et 2.X présentés dans l’issue. Vérifiez comment Swagger @ApiImplicitParams allowableValues et les annotations associées sont représentés dans CSE 2.X et 3.X. La tâche est terminée lorsqu’il est déterminé si la compatibilité de validation avec 1.X est requise et confirmé si des annotations similaires perdent les informations d’enum.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
问题背景:
从CSE 1.X 升级到 CSE 2.X后,接口配置的swagger注解@ApiImplicitParams 参数失效
接口定义如下:
@RequestMapping(path = "/v1/test", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "x-test-header", dataType = "string", required = false,
paramType = "header", value = "xxx",
allowableValues = "true,false")})
public String testV1(HttpServletRequest request) {
return "ok";
}
使用CSE 1.X时,如果传入的header不是true或者false,报错如下:
{
"message": "Parameter is not valid for operation [XXX.XXX.testV1]. Parameter is [x-test-header]. Processor is [header]."
}
使用CSE 3.X时,接口无报错
问题分析:
通过对比CSE 1.X和2.X的代码,发现org.apache.servicecomb.common.rest.codec.RestCodec#restToArgs将request请求转发为请求对象的过程中,org.apache.servicecomb.common.rest.definition.RestOperationMeta#init中创建Type的代码进行了调整
从
Method method = operationMeta.getMethod();
Type[] genericParamTypes = method.getGenericParameterTypes();
调整为
(Type)operationMeta.getSwaggerProducerOperation().getSwaggerParameterTypes().get(parameter.getName())
导致type丢失了枚举信息
请帮忙确认是否需要跟CSE 1.X保持兼容以及其他类似注解是否有相同问题
- Langage dominant
- Java
- Étoiles
- 1.9k
- Forks
- 813
- Merge moyen
- 8 j 23 h
- PR mergées (30 j)
- 1
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/servicecomb-java-chassis
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
apache/servicecomb-java-chassis#5106 ·
-
question
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
apache/servicecomb-java-chassis#5153 · 1 commentaire ·
-
[QUESTION] - 请发布3.x的最新版本 Ouvertequestion
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
apache/servicecomb-java-chassis#5146 ·
-
[FEATURE] - When will ServiceComb support Spring Boot 4.x, Spring Framework 7.x, and Jackson 3.x? Ouverteenhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
apache/servicecomb-java-chassis#5145 ·
-
2.x bug
apache/servicecomb-java-chassis#5141 · 1 personne assignée ·
Toutes les issues de apache/servicecomb-java-chassis
Issues similaires
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
inu-appcenter/memorIN-backend#288 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
frontend maui-pilot pilot-ask question
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Ouvertearea/plugin
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
kestra-io/plugin-kestra#190 ·