Skip to content

Latest commit

 

History

History
76 lines (67 loc) · 1.72 KB

README.md

File metadata and controls

76 lines (67 loc) · 1.72 KB

golang-rest-api-demo

This is an example application for REST APIs in golang with gorilla mux router and http package from standard library. The storage used is MySQL.

API documentation


  • ANY /

    • homepage with this info
  • GET /articles

    • retrives all articles from DB
    • query params : id (last ID from previous GET call for pagination), limit (max entry per page)
    • response : list of articles
  • POST /article

    • Add new article to DB
    • payload :
          {
              "Title"     (string)
              "desc"      (string)
              "content"   (string)
          }
  • PUT /article/{id}
    • Update an existing article DB
    • query param : id (article id from GET API)
    • payload :
          {
              "Title"     (string)
              "desc"      (string)
              "content"   (string)
          }
  • DELETE /article/{id}

    • Deletes an entry from DB
    • query param : id (article id from GET API)
  • GET /article/{id}

    • Retrieves article data from DB for a given ID
    • query param : id (article id from GET API)

Installation

installing and running mysql

docker run --name mysql-instance -p 3306:3036 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

docker exec -it mysql-instance -p 5432:5432 mysql -u myuser -p

installing running psql

docker run --name postgres-instance -e POSTGRES_PASSWORD=mysecretpassword -d postgres

docker exec -it some-postgres psql -U postgres

create new table

CREATE TABLE articles(
  id INTEGER PRIMARY KEY,
  title TEXT,
  descr TEXT,
  content TEXT
)

run the main.go file from the cloned repo to get access to REST APIs.