command
module
Version:
v0.0.0-...-0cb2be4
Opens a new window with list of versions in this module.
Published: Nov 14, 2023
License: MIT
Opens a new window with license information.
Imports: 3
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
¶
![Docker Image CI](https://github.com/WeDias/golang-test-api/actions/workflows/docker-image.yml/badge.svg)
golang-test-api
A simple CRUD API made with Go, Postgres, FIber, Gorm and Docker.
-
Cloning the repository
To clone the repository run the following command:
$ git clone https://github.com/WeDias/golang-test-api.git
-
How to install and run (docker)
Inside the newly cloned project folder run the following command:
$ docker compose up
# or
$ docker-compose up
-
How to install and run (manually)
-
Installing the dependencies and setup env
Inside the newly cloned project folder run the following command to install the dependencies:
$ go mod download
To configure the environment run this command:
$ bash setup-env.sh
It will generate a .env file with the variables below, you can edit to adapt with your database settings.
PG_HOST=localhost
PG_PASS=postgres
PG_USER=postgres
PG_DBNM=postgres
PG_PORT=5432
API_PORT=:3000
After that, run the ddl-database.sql file in your database which is inside the resources folder.
-
Running the application
Inside the project, run the following command to run the application:
$ go run main.go
-
API
Create a new product:
# POST /api/v1/product
$ curl --request POST \
--url http://localhost:3000/api/v1/product \
--header 'Content-Type: application/json' \
--data '{
"name": "product1",
"price": 10.99,
"stock": 10
}'
# > {"id":1,"name":"product1","price":10.99,"stock":10}
Get all products:
# GET /api/v1/product
$ curl --request GET \
--url http://localhost:3000/api/v1/product
# > [{"id":1,"name":"product1","price":10.99,"stock":10}]
Get a product by id:
# GET /api/v1/product/1
$ curl --request GET \
--url http://localhost:3000/api/v1/product/1
# > {"id":1,"name":"product1","price":10.99,"stock":10}
Update a product by id:
# PUT /api/v1/product/1
$ curl --request PUT \
--url http://localhost:3000/api/v1/product/1 \
--header 'Content-Type: application/json' \
--data '{
"name": "a product",
"price": 8.99,
"stock": 5
}'
# > {"id":1,"name":"a product","price":8.99,"stock":5}
Delete a product by id:
# DELETE /api/v1/product/1
$ curl --request DELETE \
--url http://localhost:3000/api/v1/product/1
# > {"id":1,"name":"a product","price":8.99,"stock":5}
Documentation
¶
There is no documentation for this package.
Source Files
¶
Directories
¶
Click to show internal directories.
Click to hide internal directories.