An open API service indexing awesome lists of open source software.

https://github.com/the-sabra/basic-go-api

Basic API With CRUD opreation
https://github.com/the-sabra/basic-go-api

authentication authrization echo echo-framework go jwt rbac

Last synced: 5 days ago
JSON representation

Basic API With CRUD opreation

Awesome Lists containing this project

README

          

**# Go Project: JWT Authentication, RBAC Authorization, Echo Framework, Hot Reloading, SQLite with GORM**

This project serves as a practical exploration of Go's capabilities for building robust web applications. It implements essential features like:

- **JWT (JSON Web Token) Authentication:** Securely validates user identities and provides access control.
- **RBAC (Role-Based Access Control):** Granular access management based on user roles and permissions.
- **Echo Framework:** A high-performance, minimalistic web framework for efficient development.
- **Air:** Enables hot reloading of your Go code for a seamless development experience.
- **SQLite:** A lightweight, embedded database providing a suitable choice for development and prototyping.
- **GORM (Go ORM):** An Object-Relational Mapper simplifies database interactions and data modeling.
- **LOGGING**

**Project Objectives:**

- Gain hands-on experience with Go's core concepts.
- Master the construction of RESTful APIs with JWT authentication and RBAC authorization.
- Explore hot reloading for rapid development iteration.
- Utilize GORM for efficient and productive database access.

**Target Audience:**

This project is ideal for:

- Developers interested in learning Go web application development.
- Individuals seeking to understand JWT, RBAC, Echo Framework, and GORM.
- Programmers looking to leverage Go's concurrency capabilities for performance-critical tasks.

**Learning Outcomes:**

Upon completing this project, you'll be equipped to:

- Create robust and secure Go applications with JWT authentication.
- Implement RBAC for fine-grained access control.
- Build RESTful APIs using Echo Framework.
- Enhance development workflow with hot reloading.
- Utilize GORM for object-relational mapping and database interactions.
- Deepen your understanding of Go fundamentals

**Getting Started:**

1. **Clone the repository:**
```bash
git clone https://the-sabra/basic-go-api.git
```
2. **Install dependencies:**
```bash
cd basic-go-api
go mod download
```
3. **Run the application:**
```bash
go run main.go
# or
air
```
**API Documentation**

Detailed API documentation will be provided [Here](https://documenter.getpostman.com/view/22968167/2sA3XWbHzj),
including all available endpoints, request/response formats, and authentication requirements.

**Additional Notes:**

- Feel free to modify or extend the project as needed to explore Go further.
- Consider incorporating unit tests for enhanced project maintainability.
- Refer to the official documentation of each technology for in-depth information.

**Go: A Concurrency Powerhouse**

Go's concurrency model, powered by goroutines and channels, is a key aspect of its performance. Goroutines are lightweight threads that can be launched efficiently, enabling parallel execution of tasks for responsiveness and scalability.

**Future Projects in Go**

By successfully completing this project, you'll establish a strong foundation for tackling a wide range of Go projects, including:

- Building microservices architectures
- Developing high-performance web services and APIs
- Creating command-line tools and utilities
- Leveraging Go's concurrency for real-time applications

I hope this MD provides a comprehensive overview of your Go project!