Categorygithub.com/wesleymutwiri/gocommerce
modulepackage
0.0.0-20211209211905-2d6e3393cb7d
Repository: https://github.com/wesleymutwiri/gocommerce.git
Documentation: pkg.go.dev

# README

gocommerce

Simple Go backend for the svelte ecommerce frontend

Installation

Run the code directly if you have go installed on the machine

i. Clone Repository and change directory into the folder

$ git clone https://github.com/wesleymutwiri/authvice.git && cd authvice

ii. Build the application into a single binary via:

$ go build -o main .

iii. Create a sample .env file with your postgres configuration(Dockerfile coming soon to save you the trouble)

$ cp .env.example .env

iv. Run the executable go file by:

$ ./main

REST API

The REST API to the gocommerce app is described below.

Get list of Users

Request

GET /users

curl -i -H 'Accept: application/json' http://localhost:8080/users/

Response

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 2

[]

Create a new User

Request

POST /users

curl -i -H 'Accept: application/json' --data '{"username": "aa","email": "[email protected]","password": "password"}' http://localhost:8080/users

Response

HTTP/1.1 201 Created
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 201 Created
Connection: close
Content-Type: application/json
Location: /thing/1
Content-Length: 36

{
    "id":1,"username":"aa",
    "email":"[email protected]",
    "created_at":"2020-11-10T20:57:31.763849+03:00",
    "updated_at":"2020-11-10T20:57:31.763849+03:00"
}

Get a specific User

Request

GET /users/id

curl -i -H 'Accept: application/json' http://localhost:8080/users/1

Response

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 36

{
    "id":1,
    "username":"wes",
    "email":"[email protected]",
    "created_at":"2020-11-10T20:57:31.763849+03:00",
    "updated_at":"2020-11-10T20:57:31.763849+03:00"
}

Get a non-existent User

Request

GET /users/id

curl -i -H 'Accept: application/json' http://localhost:8080/users/9999

Response

HTTP/1.1 404 Not Found
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 404 Not Found
Connection: close
Content-Type: application/json
Content-Length: 35

{"error":"record not found"}

Get list of Products

Request

GET /products

curl -i -H 'Accept: application/json' http://localhost:8080/products/

Response

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 2

[]

Create a new Product

Request

POST /products

curl -i -H 'Accept: application/json' --data '{"name": "socks","description": "Some socks over here that do well","regular_price": 100,"discount_price": 30"quantity": 2,"number_items": 10}' http://localhost:8080/products

Response

HTTP/1.1 201 Created
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 201 Created
Connection: close
Content-Type: application/json
Location: /thing/1
Content-Length: 36


   {
    "id":1,
    "name":"socks",
    "description":"Some socks over here that do well",
    "regular_price":100,
    "discount_price":30,
    "quantity":2,
    "number_items":10,
    "created_at":"2021-01-03T22:45:29.737201+03:00",
    "updated_at":"2021-01-03T22:45:29.737201+03:00"
    }

Get a specific Product

Request

GET /products/id

curl -i -H 'Accept: application/json' http://localhost:8080/products/1

Response

HTTP/1.1 200 OK
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 200 OK
Connection: close
Content-Type: application/json
Content-Length: 36

{
    "id":1,
    "name":"socks",
    "description":"Some socks over here that do well",
    "regular_price":100,
    "discount_price":30,
    "quantity":2,
    "number_items":10,
    "created_at":"2021-01-03T22:45:29.737201+03:00",
    "updated_at":"2021-01-03T22:45:29.737201+03:00"
}

Get a non-existent Product

Request

GET /products/id

curl -i -H 'Accept: application/json' http://localhost:8080/products/9999

Response

HTTP/1.1 404 Not Found
Date: Thu, 24 Feb 2011 12:36:30 GMT
Status: 404 Not Found
Connection: close
Content-Type: application/json
Content-Length: 35

{"error":"record not found"}

# Packages

No description provided by the author