FastAPI Mysql, Membangun Microservice Dengan FastAPI

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
FastAPI Mysql, Membangun Microservice Dengan FastAPI

Pada tutorial sebelumnya kita telah belajar tentang konfigurasi router menggunakan librari APIRouter FastAPI Framework.

Di tutorial ini kita akan belajar bagaimana caranya membuat class koneksi database Mysql pada FastApi Framework.

Sebagaimana Flask Framework, FastApi juga mendukung implementasi SQLAlchemy.

SQLAlchemy merupakan SQL Toolkit dan ORM (object relational mapper) seperti halnya django model.

Sebelum melangkah lebih lanjut install terlebih dahulu SQLAlchemy menggunakan pip

pip install SQLAlchemy

Selanjutnya buat sebuah direktori dengan nama db, kemudian buat file database.py dan base_class.py, perhatikan kode berikut:

db/database.py

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

SQLALCHEMY_DB_URL = "mysql+mysqldb://<username>:<password>@<host>/<database>"
engine = create_engine(SQLALCHEMY_DB_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

db/base_class.py

from typing import Any
from sqlalchemy.ext.declarative import as_declarative, declared_attr

@as_declarative()
class Base:
id: Any
__name__: str
# Generate __tablename__ automatically
@declared_attr
def __tablename__(cls) -> str:
return cls.__name__.lower()

Selanjutnya buat sebuah direktori dengan nama models, di tutorial ini saya sebuah table dengan nama customers dengan struktur data seperti dibawah ini:

CREATE TABLE `customers` (
`id` bigint NOT NULL AUTO_INCREMENT,
`customer_number` varchar(15) NOT NULL,
`name` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)

Buat sebuah file dengan nama customers.py

models/customers.py

from sqlalchemy import Column, Integer, String, DateTime
from datetime import datetime
from db.base_class import Base

class Customers(Base):
id = Column(Integer, primary_key=True, index=True)
customer_number = Column(String(255), index=True)
name = Column(String(255), index=True)
created_at = Column(DateTime(), default=datetime.now())
updated_at = Column(DateTime(), onupdate=datetime.now())

Agar lebih paham tentang bassic pengolahan data menggunakan FastApi dan Mysql, ikuti video tutorial dibawah ini

Githubhttps://github.com/halovina/fa-example/tree/fastapi-mysql

Baca artikel lainya:


  1. Hello world, membangun microservice dengan FastAPI

  2. FastAPI APIRouter, Membangun microservice dngan FastAPI

  3. Mini Wallet Bagian 1 - Django Template dan Static File

  4. Mini Wallet Bagian 2 - Django Template Base HTML

  5. Mini Wallet Bagian 3 - Dajngo Model dan Koneksi Database MySQL

  6. Tutorial bassic Mysql bagian 1 - Create Read Update Delete

  7. Tutorial bassic Mysql bagian 2 - Inner, Left, Right, Cross Join

  8. Tutorial bassic Mysql bagian 3 - Filtering Data

  9. Tutorial bassic Mysql bagian 4 - Grouping Data 

  10. Tutorial bassic Mysql bagian 5 - Operator dan Clausa

  11. Tutorial bassic Mysql bagian 6 - Replace Statement

  12. Tutorial bassic Mysql bagian 7 - Constraint Data

  13. Tutorial bassic Mysql bagian 8 - Mengubah Struktur tabel

  14. Tutorial bassic Mysql bagian 9 - Subquery

  15. Tutorial bassic Mysql bagian 10 - Virtual Tabel

  16. Tutorial bassic Mysql bagian 11 - Control Flow Function

  17. Membuat service OTP bagian 1 - OTP dan PIN

  18. Membuat service OTP bagian 2 - Sequence Diagram

  19. Membuat service OTP bagian 3 - Model dan Serializer

  20. Membuat  service OTP bagian 4 - Validate OTP

  21. Membuat  service OTP bagian 5 - Api Client Service

  22. Membuat service user login bagian 1 - Konfigurasi Database

  23. Membuat service user login bagian 2 - Serializer dan JWT

  24. Membuat CRUD service product bagian 1 - Models Product

  25. Membuat CRUD service product bagian 2 - Function Serializer

  26. Membuat CRUD service product bagian 3 - Api Client Service

  27. Membaut CRUD service product bagian 4 - Auth User

  28. Membuat CRUD service product bagian 5 - TDR File Log

  29. Membuat CRUD service product bagian 6 - Unit Test

  30. Membuat service user register bagian 1 - Django

  31. Membuat Service user register bagian 2 - Django

  32. Membuat service filter dan download file CSV di django

  33. Django upload file menggunakan FileSystemStorage