Git Product home page Git Product logo

Comments (1)

bhavya11 avatar bhavya11 commented on July 17, 2024

@domaindrivendev
I have resolved this issue in the following way as of now. The resulting Swagger json is valid and I was able to import it in APIM.

But is there any other optimum way to achieve this ?

  public class SwaggerSchemaFilter : ISchemaFilter
  {
      public void Apply(Schema schema, SchemaRegistry schemaRegistry, Type type)
      {
          if (schema.properties != null)
          {
              foreach (var property in schema.properties)
              {
                  if(property.Value.@ref != null)
                  {
                      schema.properties[property.Key].@ref =  [email protected]("[", "_").Replace("]", string.Empty).Replace(",", "-");
                  }

                  if(property.Value.items != null && property.Value.type == "array")
                  {
                      if(property.Value.items.@ref != null)
                          schema.properties[property.Key].items.@ref = [email protected]("[", "_").Replace("]", string.Empty).Replace(",", "-");
                  }
              }
          }

          List<KeyValuePair<string, string>> newOldKeys = new List<KeyValuePair<string, string>>();

          foreach(var definition in schemaRegistry.Definitions)
          {
              if(definition.Key.Contains("[") || definition.Key.Contains("]") || definition.Key.Contains(","))
              {
                  KeyValuePair<string, string> newOldKey = new KeyValuePair<string, string>(definition.Key.Replace("[", "_").Replace("]", string.Empty).Replace(",", "-"), definition.Key);
                  newOldKeys.Add(newOldKey);
              }
          }

          if(newOldKeys.Count > 0)
          {
              foreach(var entry in newOldKeys)
              {
                  var tempSchema = schemaRegistry.Definitions[entry.Value];
                  schemaRegistry.Definitions.Remove(entry.Value);
                  schemaRegistry.Definitions.Add(entry.Key, tempSchema);
              }

          }
      }
  }

from swashbuckle.webapi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.