# README
API server
RESTful API using go, cobra CLI, gorilla mux, Basic Auth, JWT Auth
API Endpoints
Endpoint | Function | Method | StatusCode |
---|---|---|---|
/api/users | GetUsers | GET | Success - StatusOK |
/api/user/{id} | GetUser | GET | Success - StatusOK, Failure - StatusNoContent |
/api/user/{id} | AddUser | POST | Success - StatusCreated, Failure - StatusConflict |
/api/user/{id} | UpdateUser | PUT | Success - StatusCreated, Failure - StatusNoContent |
/api/user/{id} | DeleteUser | DELETE | Success - StatusOK, Failure - StatusNoContent |
Installation
go install github.com/sakiib/apiServer
CLI Commands:
- help with the start commands
apiServer start -h
orapiServer start --help
- start the API server on the given port (def: 8080)
apiServer start --port=8080
- start the API server with no auth required flag (def: auth required):
apiServer start --auth=false
Set Environment variables for Basic Authentication
export username=sakib
export password=12345
User Data Model
type User struct {
ID string `json:"id"`
FirstName string `json:"firstname"`
LastName string `json:"lastname"`
}
Authentication Method
- Basic Authentication
- JWT Authentication (ToDo)
Testing the API Endpoints
- Primary API endpoints testing using Postman
- E2E Testing.
- modlues used:
net/http/httptest
,testing
,bytes
,encoding/json
,net/http
. - Checks for the response Status Code against the Expected Status Code.
- modlues used:
Resources: