Project demonstrating a basic rest api solution to better understand go. This project will leverage the gin framework, sqllite and will provide a user auth mechanism to protect certain endpoints. This will be accomplished via JWT.
- Go
- Bcrypt
go get -u golang.org/x/crypto/
- Gin
go get -u github.com/gin-gonic/gin
- Golang-JWT
go get -u github.com/golang-jwt/jwt/v5
- SQLite
go get github.com/glebarez/go-sqlite
Create an "events booking" API with the following:
Action | Endpoint | Description | Auth Required |
---|---|---|---|
GET | /events | Get a list of available events | No |
GET | /events/ | Get a specific event by id | No |
POST | /events | Create a new bookable event | Yes |
PUT | /events/ | Update an event | Yes - only by creator |
DELETE | /events/ | Delete an event | Yes - only by creator |
POST | /signup | Create a new user | No |
POST | /login | Authenticate a user | No - auth will leverage JWT |
POST | /events//register | Register user for an event | Yes |
DELETE | /events//register | Cancel an event registration | Yes |