Skip to content

tarikeshaq/personal-blog-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go REST API for my personal blog

My first Golang project, a REST API to support my personal blog (Under development 😉 )

Getting Started

Although this was meant as project for myself to use on my personal blog, feel free to clone it as boilerplate code for a MUX-MongoDB project.

Prerequisites

Of course, you'll need to have golang installed https://golang.org/dl/ (I use version 1.12.1, if you're using a different version please change the "go-version" in the go.mod file. Additionally, for dependency management, this project uses go modules!

$ git clone https://github.com/tarikeshaq/personal-blog-API.git

Since this project used go modules, you don't need to place it in your GOPATH 😄 Simply clone the project and run it!

NOTE: You'd need Go 1.11+ in order to run this using go modules

Installing

With the repo downloaded, you'll be able to run in no time! navigate to the cloned repo, and pull the dependencies by running go build

$ go build

This will create the binary and make sure all the dependencies are correct (Will download any dependencies you don't have, yay go modules)

Now, you'll have the project ready, but you do need to set some Environment (OS) variables

* "PORT": Environment variable to point to the port where you'd like the server to run
* "MONGO_HOST": Your mongoDB host, find the URI for your database and the host would be after the '@' and before the '/'
* "MONGO_USERNAME": Your mongoDB database username
* "MONGO_PASSWORD": Your mongoDB database password for the above username
* "MONGO_DATABASE": The name of the database (I have mine as blogs)

With that the application should be ready for you take on a ride!! Make sure that your MongoDB server is running, then run the following:

$ go run main.go

With that the server should be running and ready to be queried

API End points

* GET /blogs : Returns all the blog posts in the database
* GET /blogs/{blogId} : Returns one post from the database with id = blogID
* POST /blogs : Adds a blog post to the database
* DELETE /blogs/{blogId} : Deletes a blog post from the database with id = blogID

To check the structure of a blog post, check the /models directory

Deployment

I have my application deployed on Heroku

You can deploy on heroku by adding your repository from the heroku site, or using the CLI

Built With

Contributing

This a personal project, although, if you feel like you see a way to improve it, feel free to create a PR :)

Authors

  • Tarik Eshaq - Project Owner

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • Mad respect to everyone who's code I sto.. got influenced by 👼
  • Go has been an amazing techology to learn, definitly will build more stuff using it!

About

REST API for my personal blog, built using Go, MUX and Mongo-go-driver

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages