如何配置ServiceStack PostmanFeature导出示例值和参数描述供Postman导入
ServiceStack PostmanFeature 配置解决方案
实现请求示例自动填充Postman raw body区域
默认PostmanFeature导出的接口规范默认使用form-data格式展示请求示例,可通过自定义PostmanFeature配置修改默认请求体格式:
- 注册PostmanFeature时重写
RequestBodyDefault委托,同时禁用form-data导出逻辑,示例代码如下:
Plugins.Add(new PostmanFeature { // 禁用默认form-data请求体导出规则 ExportRequestBodyAsFormData = false, // 配置默认请求体为raw JSON格式,直接写入序列化后的请求示例 RequestBodyDefault = (request, dtoInstance) => new PostmanRequestBody { Mode = "raw", Raw = JsonSerializer.SerializeToString(dtoInstance), Options = new PostmanRequestBodyOptions { Raw = new PostmanRequestBodyRawOptions { Language = "json" } } } });
注:ServiceStack v6及以上版本内置ExportRequestBodyAsFormData属性,低版本可直接通过RequestBodyDefault完全覆盖请求体输出逻辑即可。
解决Postman Params区域Description列为空问题
默认PostmanFeature不会自动读取参数上的特性描述填充到Postman参数列表,需要额外配置ParameterFilter委托实现字段绑定:
- 在PostmanFeature注册配置中新增参数描述绑定逻辑,完整配置示例如下:
Plugins.Add(new PostmanFeature { ExportRequestBodyAsFormData = false, RequestBodyDefault = (request, dtoInstance) => new PostmanRequestBody { Mode = "raw", Raw = JsonSerializer.SerializeToString(dtoInstance), Options = new PostmanRequestBodyOptions { Raw = new PostmanRequestBodyRawOptions { Language = "json" } } }, // 读取ApiMember特性的Description值绑定到Postman参数描述 ParameterFilter = (postmanParam, apiParamMetadata, operationMeta) => { if (!string.IsNullOrEmpty(apiParamMetadata.Description)) { postmanParam.Description = apiParamMetadata.Description; } } });
配置完成后,只要参数上添加了[ApiMember(Description = "参数描述内容")]特性,描述内容就会自动同步到Postman的Params区域Description列。
内容的提问来源于stack exchange,提问作者Ted
相关产品推荐
相关产品推荐

