# go-microservice **Repository Path**: mirrors_ibm/go-microservice ## Basic Information - **Project Name**: go-microservice - **Description**: WARNING: This repository is no longer maintained ⚠️ This repository will not be updated. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-23 - **Last Updated**: 2025-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WARNING: This repository is no longer maintained :warning: > Please see the replacement repositories available for [Node.js](https://github.com/IBM/node-express-app), [Go](https://github.com/IBM/go-gin-app), [Java Liberty](https://github.com/IBM/java-liberty-app), [Java Spring](https://github.com/IBM/java-spring-app), [Python Flask](https://github.com/IBM/python-flask-app), [Python Django](https://github.com/IBM/python-django-app), and [Swift](https://github.com/IBM/swift-kitura-app). > This repository will not be updated. The repository will be kept available in read-only mode.

IBM Cloud

IBM Cloud platform Apache 2

# Create and deploy a Go microservice with Gin > We have similar applications available for [Node.js](https://github.com/IBM/nodejs-microservice), [Java Spring](https://github.com/IBM/spring-microservice), [Python Flask](https://github.com/IBM/flask-microservice), and [Java Liberty](https://github.com/IBM/java-liberty-microservice). In this sample microservice, you will create an application using Gin complete with standard best practices. A microservice is an individual component of an application that follows the **microservice architecture** - an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities. The microservice exposes a RESTful API matching a [OpenAPI 2.0](https://swagger.io/docs/specification/2-0/basic-structure/) definition. ## Steps You can [deploy this application to IBM Cloud](https://cloud.ibm.com/developer/appservice/create-app?starterKit=8688b5ca-21c4-3bd3-9070-8f269459ccdc) or [build it locally](#building-locally) by cloning this repo first. Once your app is live, you can access the `/health` endpoint to build out your cloud native application. ### Deploying to IBM Cloud

Deploy to IBM Cloud

Click **Deploy to IBM Cloud** to deploy this same application to IBM Cloud. This option creates a deployment pipeline, complete with a hosted GitLab project and a DevOps toolchain. You can deploy your app to Cloud Foundry, a Kubernetes cluster, or a Red Hat OpenShift cluster. OpenShift is available only through a standard cluster, which requires you to have a billable account. [IBM Cloud DevOps](https://www.ibm.com/cloud/devops) services provides toolchains as a set of tool integrations that support development, deployment, and operations tasks inside IBM Cloud. This microservice comes with the following capabilities: - [Swagger UI](http://swagger.io/swagger-ui/) running on: `/explorer` - An OpenAPI 2.0 definition hosted on: `/swagger/api` - A Healthcheck: `/health` ### Building Locally To get started building this web application locally, you can either run the application natively or use the [IBM Cloud Developer Tools](https://cloud.ibm.com/docs/cli?topic=cloud-cli-getting-started) for containerization and easy deployment to IBM Cloud. All of your `dep` dependencies are stored inside of `Gopkg.toml`. #### Native Application Development - Install [Go](https://golang.org/dl/) - Install [dep](https://github.com/golang/dep) In order for Go applications to run locally, they must be placed in the following path: ``` $GOPATH/src/gomicroservice ``` Import dependencies from Gopkg.toml using dep: ```bash dep ensure ``` Once the dependencies have been installed, you can compile a Go project with: ```bash go install ``` To run your application locally: ```bash go run server.go ``` Your sources will be compiled to your `$GOPATH/bin` directory. Your application will be running at `http://localhost:8080`. #### IBM Cloud Developer Tools Install [IBM Cloud Developer Tools](https://cloud.ibm.com/docs/cli?topic=cloud-cli-getting-started) on your machine by running the following command: ``` curl -sL https://ibm.biz/idt-installer | bash ``` Create an application on IBM Cloud by running: ```bash ibmcloud dev create ``` This will create and download a starter application with the necessary files needed for local development and deployment. Your application will be compiled with Docker containers. To compile and run your app, run: ```bash ibmcloud dev build ibmcloud dev run ``` This will launch your application locally. When you are ready to deploy to IBM Cloud on Cloud Foundry or Kubernetes, run one of the commands: ```bash ibmcloud dev deploy -t buildpack // to Cloud Foundry ibmcloud dev deploy -t container // to K8s cluster ``` You can build and debug your app locally with: ```bash ibmcloud dev build --debug ibmcloud dev debug ``` ## Next Steps * Learn more about augmenting your Go applications on IBM Cloud with the [Go Programming Guide](https://cloud.ibm.com/docs/go?topic=go-getting-started). * Explore other [sample applications](https://cloud.ibm.com/developer/appservice/starter-kits) on IBM Cloud. ## License This sample application is licensed under the Apache License, Version 2. Separate third-party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the [Developer Certificate of Origin, Version 1.1](https://developercertificate.org/) and the [Apache License, Version 2](https://www.apache.org/licenses/LICENSE-2.0.txt). [Apache License FAQ](https://www.apache.org/foundation/license-faq.html#WhatDoesItMEAN)