小编Jet*_*Cao的帖子

如何有选择地将OperationFilter添加到Swagger中的API端点?

我有以下IOperationFilter类,它实现了 API 应用程序中某些端点所需的身份验证标头:

public class AuthenticationHeadersFilter : IOperationFilter
{
    public void Apply(OpenApiOperation operation, OperationFilterContext context)
    {
        if (operation.Parameters == null)
            operation.Parameters = new List<OpenApiParameter>();

        operation.Parameters.Add(new OpenApiParameter
            {
                Name = "AccountName",
                In = ParameterLocation.Header,
                Required = true
            });

        operation.Parameters.Add(new OpenApiParameter
            {
                Name = "ApiKey",
                In = ParameterLocation.Header,
                Required = true
            });
    }
}
Run Code Online (Sandbox Code Playgroud)

ConfigureServices上面的内容通过以下方法添加到我的应用程序的 Swagger UI 中Startup.cs

public class AuthenticationHeadersFilter : IOperationFilter
{
    public void Apply(OpenApiOperation operation, OperationFilterContext context)
    {
        if (operation.Parameters == null)
            operation.Parameters = …
Run Code Online (Sandbox Code Playgroud)

c# http-headers swagger asp.net-core

8
推荐指数
2
解决办法
1万
查看次数

如何在评估 Click cli 函数后继续执行 Python 脚本?

假设我在文件中定义了一个基本的 click CLI 命令cli.py

import click

@click.command()
@click.option('--test-option')
def get_inputs(test_option):
    return test_option
Run Code Online (Sandbox Code Playgroud)

然后是另一个模块脚本test_cli.py,我想从中使用上面定义的 CLI:

from cli import get_inputs

print('before calling get_inputs')
print(get_inputs())
print('after calling get_inputs')
Run Code Online (Sandbox Code Playgroud)

然后在命令行上:

$ python test_cli.py --test-option test123
before calling get_inputs
Run Code Online (Sandbox Code Playgroud)

因此,运行 Click 命令后,整个 Python 进程就完成了,即使在启动调用的脚本中该 Click 命令之后有要计算的语句和表达式,它们也不会被执行。我将如何实现这一目标?

python command-line-interface python-click

5
推荐指数
1
解决办法
1343
查看次数