在 MVC 中,您会期望控制器接收模型作为输入并生成模型作为输出。在 Swagger 中,后者不是问题,但我对前者有麻烦。我无法理解如何让 Swagger 从传入的 GET 参数构建输入模型。
考虑:
"paths": {
"/search": {
"get": {
"consumes": [],
"produces": [
"application/json"
],
"parameters": [
// What goes here?
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/SearchResponse"
}
},
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何使生成的控制器的方法具有如下签名:
public ResponseEntity<ResultModel> controllerGet(ModelFromParameters input);
Run Code Online (Sandbox Code Playgroud)
其中 ModelFromParameters 将有多个字段对应于不同的 GET 参数。
示例主要集中在 POST 请求或 GET 请求上,其中每个 20 多个参数都填充在方法的参数列表中,这显然是反 MVC 的。
有问题的 API 是一个复杂的无状态查询系统,有很多参数。
在过去的两个小时里,我有很多性感的时间,泰语脚本字符串在我的数据库中滑落.他们神秘地整理,输出时变异,没有自然秩序而且是一场灾难.
我想忽略任何带有Thai Script字符的字符串,但我不知道如何:
Pattern.compile("\\p{Thai}")在init上失败."[?-?]" - 那会不会有用?什么是正确的方法?
我有一个巨大的项目,在不同的套件中有很多不同的测试。
我想通过名称(ClassNameTest.testMethod)找到一个测试来查看它的历史。我不知道这个测试在哪个套件。如何按测试名称搜索?
只需按测试类搜索即可返回所有构建,因为它们每次都会输出有关此类的信息。
我尝试打开测试历史记录来查看是否可以调整 URL,但它的形式testNameId=-2327717746523985574显然是无用的。
假设我有一个System.currentTimeMillis()值作为long数字.
如何修改它以匹配最后一分钟开始的瞬间?即,零秒和毫秒.
我宁愿不使用魔法常量.使用java.time很好.
假设我有一些文字,例如“ Feef”。我可以gzip压缩,结果是24个字节。有没有一种方法可以gzip压缩,因此结果将是1024个字节?它应该仍然是有效的gzip流,即在解压缩时不会生成消息“忽略跟踪垃圾”。
我将如何使用:Gzip数据标头为固定大小。附加压缩的数据正文。更新标题,将其gzip压缩至相同的固定大小并覆盖。
您可以连接gzip流,它仍然是有效的gzip,但它们必须是正确的流。也许有一种方法可以填充gzip输出?
我想使用ignite作为内存数据库创建一个模式.所以我做了以下事情:
try (Statement statement = connection.createStatement()) {
statement.executeQuery("CREATE SCHEMA my_schema");
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
Exception in thread "sql-connector-#38%null%" java.lang.AssertionError
at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1341)
at org.apache.ignite.internal.processors.query.GridQueryProcessor$6.applyx(GridQueryProcessor.java:1856)
at org.apache.ignite.internal.processors.query.GridQueryProcessor$6.applyx(GridQueryProcessor.java:1852)
at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2293)
at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFieldsNoCache(GridQueryProcessor.java:1860)
at org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.executeQuery(JdbcRequestHandler.java:188)
at org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.handle(JdbcRequestHandler.java:122)
at org.apache.ignite.internal.processors.odbc.SqlListenerNioListener.onMessage(SqlListenerNioListener.java:152)
at org.apache.ignite.internal.processors.odbc.SqlListenerNioListener.onMessage(SqlListenerNioListener.java:44)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
我不知道这意味着什么.我需要创建模式,因为我为我的sql语句创建单元测试,原始表也有一个模式:
my_schema.my_table
Run Code Online (Sandbox Code Playgroud)
我不能仅仅为了单元测试目的而替换表名.
编辑
我必须提到点燃称为模式.在我看来,它只是一个数据库名称.但CREATE DATABASE my_database也行不通.