Initializr
An Initializr jumpstarts .NET development by generating projects based on project metadata. Metadata may include, among other properties, a project name, a namespace, and a list of dependencies. At the core of an Initializr is the InitializrApi. The InitializrApi provides several REST/HTTP endpoints which include an endpoint to generate projects and an endpoint to provide smart clients the metadata needed to construct user interfaces.
It is possible to have a fully functioning Initializr deployment by simply deploying the InitializrApi. A more user-friendly deployment may include a user interface, such as a web frontend or an IDE plugin. A deployment may also leverage a Spring Cloud Config Server to access a configuration store. As an example, the Steeltoe Initializr deployment includes the InitializrWeb for a friendly user experience and a Spring Cloud Config Server using a GitHub maintained configuration.
The InitializrWeb is the reference UI for the Steeltoe Initializr and is an example of a smart client. It uses project metadata from the InitializrApi to populate its web controls with, for example, supported .NET target frameworks and Steeltoe versions.
An Initializr configuration can be bundled along with an InitializrApi deployment, or can be provided by a Spring Cloud Config Server. As as example, the Steeltoe Initializr uses Spring Cloud Config Server to access its GitHub-maintained configuration at https://github.com/SteeltoeOSS/InitializrConfig.