# Go API Server for petstoreserver This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. ## Overview This server was generated by the [openapi-generator] (https://openapi-generator.tech) project. By using the [OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub. - To see how to make this your own, look here: [README](https://openapi-generator.tech) - API version: 1.0.0 ### Running the server To run the server, follow these simple steps: ``` go run main.go ``` To run the server in a docker container ``` docker build --network=host -t petstoreserver . ``` Once image is built use ``` docker run --rm -it petstoreserver ``` ### Known Issue The endpoint `/v2/pet/findByTags` and `/v2/pet/:petId` are conflict with gin. This is a known issue of gin. Please refer [gin-gonic/gin#388](https://github.com/gin-gonic/gin/issues/388) You can manually fix it by updating the path and handler. Please refer [gin-gonic/gin/issues/205#issuecomment-296155497](https://github.com/gin-gonic/gin/issues/205#issuecomment-296155497) and an example below. `routers.go` ```diff var routes = Routes{ { "Index", "GET", "/v2/", Index, }, - { - "FindPetsByTags", - strings.ToUpper("Get"), - "/v2/pet/findByTags", - FindPetsByTags, - }, { "GetPetById", strings.ToUpper("Get"), "/v2/pet/:petId", GetPetById, }, } ``` `api_pet.go` ```diff // GetPetById - Find pet by ID func GetPetById(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{}) + petId := c.Param("petId") + + if petId == "findByTags" { + FindPetsByTags(c) + } else { + c.JSON(http.StatusOK, gin.H{}) + } } ```