/Go-Template

Primary LanguageGoApache License 2.0Apache-2.0

Go Template walkthrough

Build Status Go Report Card Coverage Status

This walkthrough will explain you how to correctly create a microservice based on our Go Template from the DevOps Console.

Create a microservice

In order to do so, access to Mia-Platform DevOps Console, create a new project and go to the Design area.

From the Design area of your project select Microservices and then create a new one, you have now reached Mia-Platform Marketplace! In the marketplace you will see a set of Examples and Templates that can be used to set-up microservices with a predefined and tested function.

For this walkthrough select the following template: Go Template. Give your microservice the name you prefer, in this walkthrough we'll refer to it with the following name: my-go-service-name. Then, fill the other required fields and confirm that you want to create a microservice.
A more detailed description on how to create a Microservice can be found in Microservice from template - Get started section of Mia-Platform documentation.

Look inside your repository

After having created your first microservice (based on this template) you will be able to access to its git repository from the DevOps Console. Inside this repository you will find an router.go file that creates an empty router.

Wonderful! You are now ready to start customizing your service! Read next section to learn how.

Add a Welcome route

Now that you have successfully created a microservice from our Go template you will add an welcome route to it.

To do so, open the router.go file define a Welcome struct that will contain your welcoming message right after the import section:

type Welcome struct {
    Msg string `json:"msg"`
}

Now, where replace the TODO comment with the following lines:

if _, err := oasRouter.AddRoute(http.MethodGet, "/", HelloHandler, HelloSchema); err != nil {
    return nil, err
}

And at the end of the file add these definitions:

func HelloHandler(c *fiber.Ctx) error {
	return c.JSON(Welcome{"Welcome!"})
}

var HelloSchema = swagger.Definitions{
	Responses: map[int]swagger.ContentValue{
		200: {
			Content: swagger.Content{
				"application/json": {Value: &Welcome{}},
			},
		},
	},
}

After committing these changes to your repository, you can go back to Mia Platform DevOps Console.

Expose an endpoint to your microservice

In order to access to your new microservice it is necessary to create an endpoint that targets it.
In particular, in this walkthrough you will create an endpoint to your microservice my-go-service-name. To do so, from the Design area of your project select Endpoints and then create a new endpoint. Now you need to choose a path for your endpoint and to connect this endpoint to your microservice. Give to your endpoint the following path: /go-template. Then, specify that you want to connect your endpoint to a microservice and, finally, select my-go-service-name.
Step 3 of Microservice from template - Get started section of Mia-Platform documentation will explain in detail how to create an endpoint from the DevOps Console.

Save your changes

After having created an endpoint to your microservice you should save the changes that you have done to your project in the DevOps console.
Remember to choose a meaningful title for your commit (e.g 'created service my_go_service_name'). After some seconds you will be prompted with a popup message which confirms that you have successfully saved all your changes.
Step 4 of Microservice from template - Get started section of Mia-Platform documentation will explain how to correctly save the changes you have made on your project in the DevOps console.

Deploy

Once all the changes that you have made are saved, you should deploy your project through the DevOps Console. Go to the Deploy area of the DevOps Console.
Once here select the environment and the branch you have worked on and confirm your choices clicking on the deploy button. When the deploy process is finished you will receveive a pop-up message that will inform you.
Step 5 of Microservice from template - Get started section of Mia-Platform documentation will explain in detail how to correctly deploy your project.

Try it

Now, if you launch the following command on your terminal (remember to replace <YOUR_PROJECT_HOST> with the real host of your project):

curl <YOUR_PROJECT_HOST>/go-template/welcome

you should see the following message:

{"msg":"Welcome!"}

Congratulations! You have successfully learnt how to modify a blank Go template into a Welcome microservice!