Skip to content
/ gofar Public

Dynamic Headless API built with GraphQL for chill dev

License

Notifications You must be signed in to change notification settings

naupaw/gofar

Repository files navigation

Gofar

Motivasi

Tujuan yang dicapai adalah membuat Interface API yang dinamis dan ramah untuk developer dan beberapa driver database seperti MongoDB, Mysql, etc..

Contoh penggunaan

Kita definisikan dulu model database dan konfigurasi lain nya di file schema.yaml

Seperti contoh berikut

name: Toko Kaset Hilman
version: v1.0.0
port: 3001
graphql:
  path: /query
  playground: /__playground
models:
  User:
    email: string `types:"unique;true" validate:"require,unique"`
    phone: string `types:"unique;true" validate:"require,unique"`
    password: string `validate:"require,min:10" hide:"true"`
    role: Role
    __options:
      module_auth: true
  Role:
    name: string
    slug: string `types:"unique;true" validate:"require,unique"`
    users:
      - User
  Song:
    title: string
    length: number
    band: Band
    album: Album
  Album:
    name: string
    year: number
    band: Band
    songs:
      - Song
    tags:
      - string
  Artist:
    name: string
    Band: Band
  Band:
    name: string
    artists:
      - Artist
    albums:
      - Album

Dengan melakukan perintah

go run github.com/pedox/gofar/server

secara otomatis Schema akan terbentuk di database (BELUM DI IMPLEMENTASI)

Dan GraphQL Playground dapat diakses di http://localhost:3001/__playground

EARLY STAGE

Sebenernya ini baru cuma berupa Proof of Concept dimana kedepan nya akan ada beberapa fitur dan module yang perlu dikembangkan diantara nya.

  • Middleware Authentication
  • Middleware Roles
  • Basic CRUD
  • ACL
  • Role based Model
  • Seamless Database Migration
  • Hook

Beberapa modul go yang digunakan

About

Dynamic Headless API built with GraphQL for chill dev

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published