我希望我的几乎所有路径都有以下3个通用错误响应.我怎么在Swagger中描述它,而不是在任何地方复制这些行?
401:
description: The requester is unauthorized.
schema:
$ref: '#/definitions/Error'
500:
description: "Something went wrong. It's server's fault."
schema:
$ref: '#/definitions/Error'
503:
description: Server is unavailable. Maybe there is maintenance?
schema:
$ref: '#/definitions/Error'
Run Code Online (Sandbox Code Playgroud)
我在请求中如何使用它的示例:
paths:
/roles:
get:
summary: Roles
description: |
Returns all roles available for users.
responses:
200:
description: An array with all roles.
schema:
type: array
items:
$ref: '#/definitions/Role'
401:
description: The requester is unauthorized.
schema:
$ref: '#/definitions/Error'
500:
description: "Something went wrong. It's server's fault."
schema:
$ref: …Run Code Online (Sandbox Code Playgroud) 由于 Eclipse 和 EGit 组织文件和目录的方式,我的 README.md 文件不在我的 git 存储库的根目录中,而是在更深的一个文件夹中。如何告诉 github 显示some_folder/README.md为项目的自述文件?
我试图弄清楚为什么这个原子包https://github.com/AtomLinter/linter-elixirc/ misbehaves.它的作者说我应该在包的某些功能中设置断点,看看那里发生了什么.我不知道在运行atom时如何做到这一点.
以下是我所说的评论:https://github.com/AtomLinter/linter-elixirc/issues/63#issuecomment-214916262
我有一个小问题,弄清楚如何{% url 'something' %}在django模板中工作.
当我在调试模式下运行我的网站时,我在stdout中看到了这个:
web_1 | [21/Dec/2015 11:29:45] "GET /accounts/profile HTTP/1.1" 302 0
web_1 | /usr/local/lib/python3.5/site-packages/django/template/defaulttags.py:499: RemovedInDjango110Warning: Reversing by dotted path is deprecated (django.contrib.auth.views.login).
web_1 | url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
web_1 |
Run Code Online (Sandbox Code Playgroud)
/ accounts/profile映射到模板,此模板中唯一提及django.contrib.auth.views.login的位置如下:
<a href="{% url 'django.contrib.auth.views.logout' %}?next={% url 'django.contrib.auth.views.login' %}">Log out</a>
Run Code Online (Sandbox Code Playgroud)
所以,我想由于某种原因,这不是使用{%url%}命令的正确方法.什么是正确的方法?如何摆脱这种警告?
这是我的urlpatterns:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^accounts/profile', views.profile_view),
url(r'^$', RedirectView.as_view(url=reverse_lazy(views.profile_view)))
]
Run Code Online (Sandbox Code Playgroud) ---
swagger: '2.0'
info:
version: 0.0.0
title: Simple API
paths:
/:
get:
responses:
200:
description: OK
definitions:
Thing:
properties:
parent_thing:
allOf:
- $ref: '#/definitions/Thing'
description: parent of this thing
Run Code Online (Sandbox Code Playgroud)
这是最小的例子.如果我在swagger-editor中编写它,则表明parent_thing的类型为undefined:https://i.imgur.com/OGHlKxg.png
我该如何解决这个问题?我想Thing引用其他Things.
在 C# ASP.NET 中,中间件应用程序的顺序重要吗?
以下2个代码片段:
public class Startup
{
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
setUpMVCRoutes(app);
app.UseSwaggerUi("foobar/api", "/foobar/v3/api.json");
app.UseSwaggerGen("foobar/{apiVersion}/api.json");
app.UseDefaultFiles();
app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());
app.UseStaticFiles();
app.UseIdentity();
app.UseCookieAuthentication();
}
...
}
Run Code Online (Sandbox Code Playgroud)
和这个
public class Startup
{
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIdentity();
app.UseCookieAuthentication();
app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());
app.UseDefaultFiles();
app.UseStaticFiles();
setUpMVCRoutes(app);
app.UseSwaggerGen("foobar/{apiVersion}/api.json");
app.UseSwaggerUi("foobar/api", "/foobar/v3/api.json");
}
...
}
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?我想,如果这个中间件的工作方式类似于 python 装饰器,或者只是执行某些操作并将结果传递给下一个函数的函数管道,那么它可能很重要。
考虑以下代码片段。
from typing import Iterable
def geometric_progression(
start: float, multiplier: float, num_elements: int
) -> Iterable[float]:
assert num_elements >= 0
if num_elements > 0:
yield start
yield from geometric_progression(
start * multiplier, multiplier, num_elements - 1
)
Run Code Online (Sandbox Code Playgroud)
此函数返回num_elements几何级数的第一个开始start并乘以multiplier每次。很容易看出最后一个元素将通过一个 yield-statement 和num_elements-1yield-from-statements传递。这是否有功能O(num_elements)的时间复杂度,还是有O(num_elements**2)时间复杂度由于嵌套产量从语句深度0,1,2,...,的“阶梯” num_elements-2,num_elements-1?
编辑:我想出了一个更简单的代码片段来演示我的要求。
from typing import Iterable, Any
def identity_with_nested_yield_from(depth: int, iterable: Iterable[Any]) -> Iterable[Any]:
assert depth >= 1
if depth == 1:
yield from iterable …Run Code Online (Sandbox Code Playgroud) 我如何检查字形是否是一个字母(或者通常用于文字的东西,如象形文字)?
通过药剂的寻找后,String文档我看到的唯一方法是检查是否String.downcase和String.upcase返回相同的字符串.如果他们这样做,那么字形不是用在文字中的东西.
我就是这样做的,但肯定应该有一个更简单的方法吗?
defmodule Words do
defp all_letters_uppercase?(string) do
String.upcase(string) == string
end
defp all_letters_downcase?(string) do
String.downcase(string) == string
end
defp contains_letter?(string) do
not (all_letters_uppercase?(string) and all_letters_downcase?(string))
end
def single_grapheme?(string) do
with graphemes = String.graphemes(string)
do
length(graphemes) == 1 and hd(graphemes) == string
end
end
@doc """
Check whether string is a single letter.
"""
def letter?(string) do
single_grapheme?(string) and contains_letter?(string)
end
end
Run Code Online (Sandbox Code Playgroud)
更新:我的代码不适用于日文字母
iex(35)> Words.letter?("?")
false
Run Code Online (Sandbox Code Playgroud) 我有一个(可能是多维的)数组X。它至少有k尺寸。我不知道它有多少个维度。如何k仅按第 维对其进行索引?
例如,如果X是 4 维,k是 3,并且所需的索引是 7,我想得到X[:, :, 7, :]。
我想创建一个路径,接受用逗号分隔的任意数量的ID.它应该接受以下所有内容:
GET /pets/1,2 # returns info about pets with ids 1, 2
GET /pets/4,10,12,124,2 # same, for pets with ids 4, 10, 12, 124, 2
Run Code Online (Sandbox Code Playgroud)
这本书"建立你不会讨厌的api"给了我这个想法.我如何大摇大摆?
swagger ×3
python ×2
api ×1
asp.net ×1
atom-editor ×1
c# ×1
coffeescript ×1
debugging ×1
django ×1
elixir ×1
github ×1
javascript ×1
julia ×1
middleware ×1
openapi ×1
rest ×1
unicode ×1
yield-from ×1