Swagger 2.0模型中的字符串显示为""

时间:2015-04-20 18:52:35

标签: swagger swagger-ui swashbuckle

我正在升级到swagger 2.0,在我的模型的UI中,我希望字符串显示为“”。

现在模型架构看起来像

{
  "Name": "string",
  "Id": "string",
  "Year": 0
}

我希望它看起来像

{
  "Name": "",
  "Id": "",
  "Year": 0
}

有没有办法在swagger 2.0中设置它?

2 个答案:

答案 0 :(得分:1)

它不可配置。这是显示的工作方式以及它如何告诉最终用户需要使用的值的类型。空字符串不会像明确表示字符串一样具有描述性。

如果你对它有强烈的兴趣,我们非常欢迎您修改代码以适合您的节点。代码随时可用,可以随意定制。

答案 1 :(得分:1)

要进行更改,我必须更新swagger-client file

我改变的行被评为//// BEGIN CUSTOM EDITS ///。这些更改使字符串显示为''而不是字符串和布尔值在模式中为false而不是true。

var schemaToJSON = function (schema, models, modelsToIgnore) {
  var type = schema.type || 'object';
  var model;
  var output;

  if (schema.example) {
    output = schema.example;
  } else if (_.isUndefined(schema.items) && _.isArray(schema.enum)) {
      output = schema.enum[0];

  }

  if (_.isUndefined(output)) {
    if (schema.$ref) {
      model = models[helpers.simpleRef(schema.$ref)];

      if (!_.isUndefined(model)) {
        if (_.isUndefined(modelsToIgnore[model.name])) {
          modelsToIgnore[model.name] = model;
          output = schemaToJSON(model.definition, models, modelsToIgnore);
          delete modelsToIgnore[model.name];
        } else {
          if (model.type === 'array') {
            output = [];
          } else {
            output = {};
          }
        }
      }
    } else if (!_.isUndefined(schema.default)) {
      output = schema.default;
    } else if (type === 'date-time') {
      output = new Date().toISOString();
    } else if (type === 'date') {
      output = new Date().toISOString().split('T')[0];
    } else if (type === 'string') {
        //// BEGIN CUSTOM EDITS ///
        // Change default display
        output = '';
        // END CUSTOM EDITS
    } else if (type === 'integer') {
      output = 0;
    } else if (type === 'long') {
      output = 0;
    } else if (type === 'float') {
      output = 0.0;
    } else if (type === 'double') {
      output = 0.0;
    } else if (type === 'boolean') {
        //// BEGIN CUSTOM EDITS ///
        // Change default display
        output = false;
        // END CUSTOM EDITS
    } else if (type === 'number') {
      output = 0.0;
    } else if (type === 'object') {
      output = {};