Git Product home page Git Product logo

Comments (3)

LePips avatar LePips commented on June 6, 2024

I think it can automatically generate a (rather useless) name but then the user can create a mapping based on the host (not including port for YAML purposes),

servers:
  - https://production.com:Production
  - http://staging.dev:Staging

Edit: well, I guess port removal would actually be problematic in case they separate based on ports. Also if the URLs differ by subdirectories, so full URL mapping would be needed.

Edit to the edit: didn't know about templating for URLs, seems like this would be an extensive feature.

from createapi.

kean avatar kean commented on June 6, 2024

Right, maybe it's best to leave it out of the scope, just like authentication. I don't see how you can possibly generate anything useful without having a basic name field.

from createapi.

LePips avatar LePips commented on June 6, 2024

I think this would be possible with just a full mapping of the URL, template and all.

servers:
  - production: "https://production.com"
  - developing: "https://{customerId}.developing.com"

OpenAPIKit gives us an extensive URLTemplate object which we can probably create an enum for each server and the variables are filled in as the associated values:

enum Servers {
	case production
	case developing(customerId: String)
	
	var url: URL? {
		...
		case .developing(let customerId):
			// replace the variables in a URLTemplate and use their built in `.url` construction
			// or whatever we put here
	}
}

The ParallelDocumentParser just needs the decoding:

var servers: Result<[OpenAPI.Server], Error>!
perform(in: group) {
    servers = Result(catching: { try container.decode([OpenAPI.Server].self, forKey: .servers) })
}

While there is no name feature which would be the best thing, we can just have the default be alphabetical. This default doesn't seem like an issue for me as users that would use this feature would manually create the mapping anyways to work with it.

from createapi.

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.