반응형
◆ RESTful API
▶ 웹 서비스에서 자원을 요청 및 제어할 때 적용되는 일련의 규칙
▶ 자원은 보통 HTML 문서(웹 페이지)나 JSON 문서(단순 정보 조회)
▶ JSON이란 JavaScript Object Notation의 약자로 자바스크립트의 객체를 표현하는 방식으로 API에서 가장 많이 쓰이는 데이터 형식
▶ 대부분의 RESTful API는 HTTP를 사용
◆ Gin Framework
▶ Gin 프레임워크는 고성능 RESTful API 개발에 많이 사용되는 Go 기반의 오픈 소스 프레임워크
▶ https://github.com/gin-gonic/gin
▶ Gin 프레임워크는 성능도 높고 실제 RESTful API를 구현하는 데 사용할 수 있는 간단하고 사용하기 쉬운 API를 제공
◆ Model & Database Layer
▶ 데이터 모델이란 데이터베이스에 저장된 데이터를 표현하는 자료 구조
▶ 세가지 모델 필요
→ Product(상품)
→ Customer(고객)
→ Customer Order(주문)
▶ src 디렉토리에 models 디렉토리를 생성하고 models.go 파일을 생성하고 작성
package models
import (
"time"
)
type Product struct {
Image string `json:"img"`
ImagAlt string `json:"imgalt"`
Price float64 `json:"price"`
Promotion float64 `json:"promotion"`
PoructName string `json:"productname"`
Description string `json:"desc"`
}
type Customer struct {
FirstName string `json:"firstname"`
LastName string `json:"lastname"`
Email string `json:"email"`
Pass string `json:"password"`
LoggedIn bool `json:"loggedin"`
}
type Order struct {
Product
Customer
CustomerID int `json:"customer_id"`
ProductID int `json:"product_id"`
Price float64 `json:"sell_price"`
PurchaseDate time.Time `json:"purchase_date"`
}
▶ models 디렉토리로 프롬프트를 이동해서 go install 명령 수행
◆ 인터페이스 생성
▶ src 디렉토리에 dblayer 디렉토리를 생성하고 dblayer.go 파일을 생성하고 작성
package dblayer
import "models"
type DBLayer interface {
GetAllProducts() ([]models.Product, error)
GetPromos() ([]models.Product, error)
GetCustomerByName(string, string) (models.Customer, error)
GetCustomerByID(int) (models.Customer, error)
GetProduct(int) (models.Product, error)
AddUser(models.Customer) (models.Customer, error)
SignInUser(username, password string) (models.Customer, error)
SignOutUserById(int) error
GetCustomerOrdersByID(int) ([]models.Order, error)
AddOrder(models.Order) error
GetCreditCardCID(int) (string, error)
SaveCreditCardForCustomer(int, string) error
}
▶ dblayer 디렉토리로 프롬프트를 이동하고 go build
반응형
'IT 초보코딩의 세계 > Go 언어' 카테고리의 다른 글
Go 언어 Front End 제작해보기(모달 윈도) 2장 (6) | 2023.05.10 |
---|---|
Go 언어 Front End 제작해보기 1장 (16) | 2023.05.05 |
[Block Chain] Go언어의 Web Download 3장 (0) | 2023.04.14 |
[Block Chain] Go언어의 AES 대칭키, RSA 공개키 알고리즘 2장 (2) | 2023.04.14 |
[Block Chain] Go언어의 JSON, 암호화 1장 (0) | 2023.04.14 |
댓글