我有以下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) 假设我在文件中定义了一个基本的 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 命令之后有要计算的语句和表达式,它们也不会被执行。我将如何实现这一目标?