Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koriebruh/animeh-api
API ANIME make with Gin , Elasticsearch and Mysql
https://github.com/koriebruh/animeh-api
api elasticsearch gin gorm knn mysql
Last synced: about 17 hours ago
JSON representation
API ANIME make with Gin , Elasticsearch and Mysql
- Host: GitHub
- URL: https://github.com/koriebruh/animeh-api
- Owner: koriebruh
- Created: 2024-12-03T15:50:30.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2025-01-07T16:18:28.000Z (about 1 month ago)
- Last Synced: 2025-01-07T17:34:37.535Z (about 1 month ago)
- Topics: api, elasticsearch, gin, gorm, knn, mysql
- Language: Go
- Homepage:
- Size: 5.52 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Untuk menjalankan web server, MySQL, dan Elasticsearch, ikuti langkah-langkah berikut:
1. **Menjalankan Docker Compose**
Jalankan perintah berikut untuk mengaktifkan web server, MySQL, dan Elasticsearch menggunakan Docker Compose:```bash
docker compose up -d
```2. **Tunggu Beberapa Saat**
Tunggu sekitar 10 detik untuk memastikan Elasticsearch dan MySQL selesai melakukan proses booting.3. **Masuk ke dalam Container**
Setelah sistem siap, masuk ke dalam container untuk menjalankan unit test yang secara otomatis akan menyisipkan data ke Elasticsearch:```bash
docker exec -it apinime-api_anime-1 bash
```4. **Jalankan Unit Test**
Setelah berada di dalam container, jalankan perintah berikut untuk menjalankan unit test:```bash
go test -v -run TestInsertDB .
```---
# 📑 API Documentation
### Root Endpoint 🌍
```
GET http://localhost:3000/
Accept: application/json
```### 🔍 **Auto Complete**
```
GET http://localhost:3000/autocomplete?q=One%20Piece
Accept: application/json
Content-Type: application/json
``````
GET http://localhost:3000/autocomplete?q=sousou
Accept: application/json
Content-Type: application/json
```### 🔎 **Search Anime**
```
GET http://localhost:3000/search/anime?name=One+Piece&from=0&size=20&genre=Comedy
Accept: application/json
Content-Type: application/json
``````
GET http://localhost:3000/search/anime?genre=Comedy
Accept: application/json
Content-Type: application/json
``````
GET http://localhost:3000/search/anime?name=Sousou%20no%20Frieren
Accept: application/json
Content-Type: application/json
``````
GET http://localhost:3000/search/anime?min_score=8
Accept: application/json
Content-Type: application/json
```### ⭐ **Top Anime**
```
GET http://localhost:3000/anime/top?top_year=2022
Accept: application/json
Content-Type: application/json
```### 📚 **Find Anime by ID**
```
GET http://localhost:3000/anime/100
Accept: application/json
Content-Type: application/json
```### 🤖 **Recommend Anime by ID**
```
GET http://localhost:3000/anime/100/recommend?page=1
Accept: application/json
Content-Type: application/json
```### 📝 **Create New User**
```
POST http://localhost:3000/users
Accept: application/json
Content-Type: application/json{
"username": "fren",
"email": "[email protected]",
"password": "fren123"
}
```
### 🔐 **Login User**
```
POST http://localhost:3000/users/login
Accept: application/json
Content-Type: application/json{
"email": "[email protected]",
"password": "fren123"
}
```### 🔑 **Change Password**
```
POST http://localhost:3000/users/change
Accept: application/json
Content-Type: application/json
Authorization: Bearer{
"email": "[email protected]",
"new_password": "fren47"
}
```### ✅ **Confirm Password Change**
```
POST http://localhost:3000/users/change-confirm
Accept: application/json
Content-Type: application/json
Authorization: Bearer{
"token": ""
}
```### 💖 **Add to Favorites**
```
POST http://localhost:3000/users/fav/771
Accept: application/json
Content-Type: application/json
Authorization: Bearer
```### ❌ **Remove from Favorites**
```
DELETE http://localhost:3000/users/fav/771
Accept: application/json
Content-Type: application/json
Authorization: Bearer
```### 📜 **List All Favorites**
```
GET http://localhost:3000/users/fav
Accept: application/json
Content-Type: application/json
Authorization: Bearer
```---