Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hadihammurabi/belajar-go-ws
https://github.com/hadihammurabi/belajar-go-ws
Last synced: 7 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/hadihammurabi/belajar-go-ws
- Owner: hadihammurabi
- License: mpl-2.0
- Created: 2021-07-03T09:31:08.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-07-03T15:03:18.000Z (over 3 years ago)
- Last Synced: 2024-11-07T08:38:58.555Z (about 2 months ago)
- Language: Go
- Size: 33.8 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Belajar Go REST API
Belajar REST API dengan bahasa pemrograman Go.# Daftar Isi
* [Fitur](#fitur)
* [Konsep Arsitektural](#konsep-arsitektural)
* [Stack Teknologi](#stack-teknologi)
* [Utilitas Pihak Ketiga](#utilitas-pihak-ketiga)
* [Menjalankan Projek](#menjalankan-projek)
* [Persiapan](#persiapan)
* [Mode Development](#mode-development)
* [Mode Production](#mode-production)# Fitur
Projek ini sudah siap dijalankan dan dapat dimodifikasi sesuai kebutuhan masing-masing. Adapun kemampuan projek ini:
1. Dapat menjadi backend dari REST API.
2. Dapat menjadi service dalam rangkaian microservices.
3. Dapat menyediakan dokumentasi API melalui Swagger.
4. Support berbagai koneksi database, seperti MySQL, PostgreSQL, SQLite, dan SQL Server.
5. Support migrasi database dalam bentuk file SQL.
6. Support [dependency injection](https://en.wikipedia.org/wiki/Dependency_injection).# Konsep Arsitektural
Struktur proyek ini mengikuti konsep-konsep arsitektural seperti:
- DRY (Don't Repeat Yourself)
- SOLID Principle
- Clean Architecture# Stack Teknologi
Nama | Kegunaan
-|-
[Go](https://golang.org) | Bahasa Pemrograman
[Fiber](https://docs.gofiber.io) | Web Framework
[PostgreSQL](https://www.postgresql.org) | Database Management System
[Gorm](https://gorm.io/index.html) | Object-Relational Mapper
[Jwt](https://jwt.io) | Token untuk Otentikasi# Utilitas Pihak Ketiga
Nama | Kegunaan
-|-
[Validator](https://github.com/go-playground/validator) | Validasi data
[Soda CLI](https://gobuffalo.io/en/docs/db/toolbox#from-a-release-archive) | Migrasi database
[Swag](https://github.com/swaggo/swag) | Otomatis generate dokumentasi REST API (swagger)
[GNU/Make](https://www.gnu.org/software/make/) | Build tool# Menjalankan Projek
## Persiapan
Agar projek dapat dijalankan, diperlukan beberapa hal untuk dipersiapkan, antara lain:
1. Menjalankan migration dengan menyesuaikan akses database.
```bash
./.bin/soda m -c db/database.yml -p db/migrations
```## Mode Development
1. Clone projek ke komputer lokal, dengan perintah:
```bash
git clone https://github.com/hadihammurabi/belajar-go-ws
```
2. Menjalankan projek dengan mode development (pengembangan) dengan perintah:
```bash
make dev
```## Mode Production
1. Clone projek ke komputer lokal, dengan perintah:
```bash
git clone https://github.com/hadihammurabi/belajar-go-ws
```
2. Menjalankan projek siap guna dengan perintah:
```bash
make && ./main
```