我找不到为什么Swagger没有显示带有文本区域“body”的POSTendpoint,以便我可以将JSON粘贴到其中。
我本以为会看到这样的页面,在PetStore中大摇大摆地发布
但我的表格只是在我点击“试用”后发布的
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 415 Unsupported Media Type</title>
</head>
<body><h2>HTTP ERROR 415</h2>
<p>Problem accessing /promotions. Reason:
<pre> Unsupported Media Type</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
{
"access-control-allow-origin": "http://localhost:8080",
"date": "Thu, 11 Jun 2015 07:37:15 GMT",
"cache-control": "must-revalidate,no-cache,no-store",
"access-control-allow-credentials": "true",
"content-type": "text/html; charset=ISO-8859-1",
"content-length": "320",
"access-control-expose-headers": ""
}
你能帮我一下吗?
$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
专家
parent
- pom.xml: <dropwizard.version>0.8.1</dropwizard.version>
<swagger.version>0.7.0</swagger.version>)
app
- pom.xml: <dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>${dropwizard.version}</version>
</dependency>
<dependency>
<groupId>io.federecio</groupId>
<artifactId>dropwizard-swagger</artifactId>
<version>${swagger.version}</version>
</dependency>
- config.yml:
swagger:
resourcePackage: myproject.promotion.v1.resource
representation
- pom.xml
配置
package myproject.promotion.app.config;
public class PromotionServiceConfiguration extends Configuration {
@JsonProperty("swagger")
public SwaggerBundleConfiguration swaggerBundleConfiguration;
}
应用程序
package myproject.promotion.app;
public class PromotionServiceApplication extends Application<PromotionServiceConfiguration> {
public static void main(String[] args) throws Exception {
new PromotionServiceApplication().run(args);
}
@Override
public void initialize(Bootstrap<PromotionServiceConfiguration> bootstrap) {
bootstrap.addBundle(new PromotionSwaggerBundle());
}
@Override
public void run(PromotionServiceConfiguration configuration, Environment environment) {
//Deleted to make it short
}
}
促销SwaggerBundle
package myproject.promotion.app.config;
public class PromotionSwaggerBundle extends SwaggerBundle<PromotionServiceConfiguration> {
@Override
protected SwaggerBundleConfiguration getSwaggerBundleConfiguration(PromotionServiceConfiguration configuration) {
return configuration.swaggerBundleConfiguration;
}
}
终点,终点
package myproject.v1.resource;
@Path("/promotions")
@Api(value = "/promotions/", description = "Promotions' possible operations", consumes = "application/json", produces = "application/json")
public class PromotionManagementResource {
private static final String PROMO_PARAM = "promotionId";
private final PromotionManagementService promotionManagementService;
@Inject
public PromotionManagementResource(PromotionManagementService promotionManagementService) {
this.promotionManagementService = promotionManagementService;
}
@POST
@Consumes(APPLICATION_JSON)
@ApiOperation(value = "Create promotion")
@ApiResponses(value = {
@ApiResponse(code = 201, message = "Promotion created. Link to it in Location HEADER"),
@ApiResponse(code = 409, message = "Promotion already exists")
})
public Response create(final Promotion promotion, @Context final UriInfo uriInfo) throws IOException {
Promotion createdPromotion = promotionManagementService.create(promotion);
URI createdInventoryURI = inventory(createdPromotion, uriInfo);
return Response.created(createdInventoryURI).build();
}
您将Api作为一个decorator,使用consumes=“application/json”,您的错误是关于不支持的媒体类型。因此,您的endpoint希望您发送应用程序/json post数据,您的浏览器发送多部分/表单数据或url编码的数据。
最后,注释@ApiParam成功了。
新的POST方法(带有新注释)
@POST
@Consumes(APPLICATION_JSON)
@ApiOperation(value = "Create promotion", notes = "", response = Promotion.class)
@ApiResponses(value = {
@ApiResponse(code = 201, message = "Promotion created. Link to it in Location HEADER."),
@ApiResponse(code = 409, message = "Promotion already exist.")
})
public Response create(@ApiParam final Promotion promotion, @Context final UriInfo uriInfo) throws IOException {
Promotion createdPromotion = promotionManagementService.create(promotion);
URI createdPromotionURI = uriTo(createdPromotion, uriInfo);
return Response.created(createdPromotionURI).build();
}
谢谢你的帮助,cyrbil。
我试图在用户登录后显示我的json响应。当用户输入正确的信息时,它成功地在我的应用程序中显示响应。但是当用户在这里输入错误的凭证时,应用程序会崩溃,这是当用户输入错误信息时我的json响应。它应该显示状态=0在我的应用程序显示(或任何我想显示的响应 这是当用户按下登录按钮时我的API调用 } 我的模型类 然后在这里,我显示我的响应,当用户输入正确的凭据时,该响应成功执行。但是在输入错误的凭据时崩溃
问题内容: 我的DataAcess类中具有以下功能,但未显示任何结果。 我的代码如下: 我也尝试过: 但是它可以很好地运行而无需像这样进行参数设置: 如何使用 @ProductName 参数化编写此代码? 问题答案: 你应该用 代替 为什么?因为在查询中,您的参数在引号内。在报价,SQL会将其识别为一个 字符串字面量 和 从来没有 看到它作为一个参数。
但我什么也得不到。当我试图回显setup_postdata之后的细节时,它只有一个回显“数组”。 当我var_dump$post时,它也会显示所有数据。 这是我时得到的结果 object(WP_Post)#614(24){[“id”]=>int(69)[“post_author”]=>string(1)“1”[“post_date”]=>string(19)“2017-08-22 02:26:43
所以几天前,我安装了vscode来处理Unity游戏引擎脚本,然而,即使我安装了C#扩展,它也不会显示每个函数的参数,例如,如果我编写一个函数,vscode没有显示我应该把什么样的参数放在括号里。我怎样才能让它这样做? 比如说,在我编写的代码中,它不会显示的参数: 此外,每当我从Unity项目加载脚本时,vscode都会显示此错误: 错误图像
我通过jQuery ajax调用一个Web服务。在浏览器中检查时,从服务返回的响应似乎很好,如下所示: 当我通过jQueryAjax调用得到相同的结果时,它显示为未定义。 此处“数据”显示为对象文档, “cont”显示为未定义 当我试图提醒“jqxhr”参数时,它显示了来自web服务的所有数据,并且状态为OK。我在大多数帖子和博客上都试过了,但都找不到哪里出了问题。请帮忙。
我用swagger,OpenAPI版本3为web API编写文档。我使用swagger php包从注释生成文档化的json。我有一个服务,在那里我发送post请求以添加新用户,请求的主体是json(因此参数作为json对象发送)。它有两个参数-电子邮件和密码。请求正文看起来像 这是大摇大摆的 YAML 这里是包含请求参数的参考模式(< code >/components/schemas/sign