Apakah mysql memiliki rest api?

Mempelajari cara membangun database sederhana untuk menambah, memperbarui, dan menghapus todos dengan Node. js, MySQL, dan Ekspres

setahun yang lalu   •   10 mnt dibaca

Oleh Ekekenta Odionyenfe. C

Foto oleh Douglas Lopes / Unsplash

Daftar Isi

Node. js umumnya digunakan bersamaan dengan database NoSQL seperti MongoDB, meskipun juga bekerja dengan baik dengan database relasional seperti MySQL, PostgreSQL, dan lainnya. MySQL telah ada selama beberapa dekade dan merupakan salah satu sistem manajemen basis data relasional (RDBMS) yang banyak digunakan. Basis data sumber paling terbuka di dunia adalah RDBMS yang ideal untuk aplikasi kecil dan besar

Tutorial ini akan mengeksplorasi cara membangun REST API dengan Express dan MySQL dengan membuat database sederhana untuk menambah, memperbarui, dan menghapus todos. Anda dapat mengikuti dengan mengkloning repositori GitHub untuk proyek ini. Mari kita mulai

Prasyarat

Tutorial ini adalah demonstrasi langsung. Pastikan Anda memiliki yang berikut sebelum memulai

  1. Server MySQL diinstal di komputer Anda
  2. Node. js diinstal di komputer Anda

Semua demonstrasi akan menggunakan Ubuntu 20. 04 dengan Node 14 LTS. Ini juga berfungsi untuk sistem operasi lain dan versi Linux lainnya

Apa itu REST?

REST (Representational State Transfer) adalah gaya arsitektur perangkat lunak yang dibuat pengembang untuk membantu menciptakan dan mengembangkan arsitektur World Wide Web. REST menentukan seperangkat kriteria tentang bagaimana arsitektur sistem hypermedia terdistribusi skala Internet, seperti Web, harus beroperasi. Ini adalah salah satu dari berbagai cara aplikasi, server, dan situs web dapat mengkomunikasikan data dan layanan. Ini umumnya memberikan aturan tentang bagaimana pengembang yang bekerja dengan data dan layanan mewakili elemen melalui API. Program lain mungkin secara tepat meminta dan menerima data dan layanan yang dapat diakses oleh API

Mengapa menggunakan REST?

REST memiliki beberapa karakteristik unik yang menjadikannya salah satu gaya arsitektur perangkat lunak teratas yang banyak digunakan oleh insinyur perangkat lunak

  1. Ini ringan. REST API menggunakan standar HTTP. Dengan demikian Anda dapat menggunakan XML, JSON, HTML, dan format data lainnya. Oleh karena itu, REST API cepat dan ringan, menjadikannya pilihan yang sangat baik untuk mengembangkan aplikasi seluler, perangkat internet untuk segala hal, dan aplikasi lainnya
  2. Itu independen. Pemisahan klien dan server dalam REST API membuatnya independen. Protokol REST memisahkan penyimpanan data dan antarmuka pengguna dari server, sehingga memudahkan pengembang untuk berkolaborasi dalam membangun sebuah proyek
  3. Ini dapat diskalakan dan fleksibel. REST API dapat diskalakan dan fleksibel untuk digunakan karena pemisahan klien dan server, memungkinkan pengembang untuk mengintegrasikan REST API tanpa upaya ekstra apa pun.
  4. Itu tanpa kewarganegaraan. Panggilan dilakukan ke REST secara independen, dan masing-masing panggilan ini berisi semua data untuk menyelesaikan permintaan
  5. Ini memiliki antarmuka seragam yang memungkinkan evolusi independen dari aplikasi tanpa memiliki layanan aplikasi atau model dan tindakan yang digabungkan secara erat ke lapisan API itu sendiri
  6. Ini adalah sistem arsitektur berlapis yang membangun hierarki yang membantu menciptakan aplikasi yang lebih skalabel dan modular

Sekilas tentang database MySQL

MySQL adalah sistem manajemen basis data relasional sumber terbuka (RDBMS). Ini adalah sistem database yang paling populer digunakan dengan PHP. MySQL adalah layanan database terkelola penuh yang digunakan untuk menerapkan aplikasi cloud-native. HeatWave, akselerator kueri kinerja tinggi terintegrasi, meningkatkan kinerja MySQL hingga 5400x

MySQL dikembangkan, didistribusikan, dan didukung oleh Oracle Corporation dengan fitur-fitur berikut

  • Data dalam database MySQL hidup dalam tabel yang terdiri dari kolom dan baris
  • MySQL adalah sistem basis data yang berjalan di server
  • MySQL sangat ideal untuk aplikasi kecil dan besar
  • MySQL adalah sistem database yang sangat cepat, andal, dan mudah digunakan. Ini menggunakan SQL standar
  • MySQL mengkompilasi pada beberapa platform

Membuat Node. aplikasi js

Sekarang kita telah menjelajahi apa itu REST, dan memiliki tinjauan singkat tentang database MySQL, mari selami pembuatan aplikasi RESTFul kita. Pertama, kita perlu membuat folder untuk proyek kita dengan perintah di bawah ini

mkdir rest-with-mysql && cd rest-with-mysqlMembuat folder baru untuk proyek

Perintah di atas akan membuat folder rest-with-MySQL dan mengubah direktori ke folder tersebut. Selanjutnya, kita akan menginisialisasi node baru. proyek js dengan perintah di bawah ini

npm init -y_Menginisialisasi Node baru. proyek js

Perintah di atas akan menginisialisasi Node baru. js, melewatkan semua petunjuk untuk detail proyek. Perintah juga akan membuat sebuah paket. json di direktori root proyek kami, yang akan merekam semua metadata penting tentang proyek kami. Anda dapat memutuskan untuk mengikuti petunjuk untuk memasukkan detail proyek dengan menghapus bendera dari perintah

Selanjutnya, kami akan menginstal dependensi yang kami perlukan untuk proyek kami

npm install express MySQL cors Memasang Kors

Perintah di atas akan membutuhkan sedikit waktu untuk diselesaikan, tetapi kita akan menginstal Express, MySQL, dan Cors di bagian akhir. Terakhir, mari kita lihat struktur proyek kita. Di akhir tutorial ini, struktur proyek kita akan terlihat seperti ini

Struktur aplikasi

Menyiapkan server Ekspres

Sekarang setelah kita menginstal dependensi, mari kita gunakan dengan menyiapkan server ekspres terlebih dahulu

Buat aplikasi. js dan tambahkan potongan kode berikut di bawahnya. Kami akan mengimpor yang berikut ini

  • Cepat. Untuk membuat server kami
  • Kor. Untuk mengizinkan dan mengalihkan sumber daya permintaan
  • Router. Di sinilah rute API kita akan ditentukan nanti di bagian ini
  • AppError dan errorHandler. Ini adalah fungsi penangan kesalahan global kami. Kami akan membuatnya nanti
const express = require("express"); const cors = require("cors"); const router = require("./routes"); const AppError = require("./utils/appError"); const errorHandler = require("./utils/errorHandler"); …. Menyiapkan dependensi kita

Selanjutnya, kita membuat instance aplikasi dari express, menggunakan express. json() middleware di aplikasi kami untuk mem-parsing badan URL yang disandikan. Akhirnya, kami membuat middleware router API kami mendengarkan permintaan masuk ke URL yang ditentukan

Kemudian, kami memeriksa URL yang hilang dari titik akhir kami dan memberikan kesalahan 404 kepada pengguna jika diakses. Penangan kesalahan global akan menangani ini (kami akan membuatnya di bagian selanjutnya)

app.use(api, router); app.all("*", (req, res, next) => { next(new AppError(`The URL ${req.originalUrl} does not exists`, 404)); }); app.use(errorHandler); ..._Memeriksa titik akhir misi dan mengarahkan pengguna ke 404 jika mereka mencapainya

Terakhir, kami akan mengonfigurasi aplikasi kami untuk mendengarkan port 3000

const PORT = 3000; app.listen(PORT, () => { console.log(`server running on port ${PORT}`); }); module.exports = app;Memilih port 3000 untuk port mendengarkan kami

Siapkan dan sambungkan ke MySQL

Sekarang, kami telah menyiapkan server Express kami. Mari kita lanjutkan dan siapkan Database MySQL kita. Pertama, kita akan membuka shell MySQL kita dengan perintah di bawah ini

//On Windows MySQL //Ubuntu mysql -u root -pMembuka cangkang

Perintah di atas akan meminta kata sandi root Anda

Gunakan kata sandi Anda untuk melanjutkan

Masukkan kata sandi dan tekan tombol Enter untuk melanjutkan. Jika semuanya berjalan dengan baik, Anda akan melihat keluaran yang mirip dengan tangkapan layar di bawah ini di terminal Anda

Kesuksesan. Inilah yang akan Anda lihat jika semuanya berjalan dengan baik

Selanjutnya, jalankan pernyataan SQL di bawah ini di shell MySQL Anda untuk membuat database todos kami

CREATE DATABASE todos Membuat todos DB

Kemudian, jalankan perintah di bawah ini untuk membuat tabel todolist kita. Tabel akan memiliki bidang id, nama, status, tanggal_dibuat. Id yang diajukan akan menjadi milik meja kami

CREATE TABLE todolist(id int NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL, status varchar(50), date_created DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id)); _Menginisialisasi tabel todolist

Selanjutnya, buat folder layanan di direktori root proyek kami. Di folder layanan, buat db. js dan tambahkan potongan kode berikut di bawahnya

const mysql = require('mysql'); const conn = mysql.createConnection({ host: "localhost", user: "root", password: "1234", database: "todos", }); conn.connect(); module.exports = conn;Menghubungkan ke database MySQL dengan metode createConnection

Kode di atas akan terhubung ke database MySQL kami menggunakan metode MySQL createConnection. Metode createConnection menggunakan host, nama pengguna, kata sandi, dan nama basis data sebagai parameter yang diperlukan

Membuat pengontrol aplikasi

Kami telah berhasil menghubungkan database MySQL kami. Mari lanjutkan membuat rute untuk aplikasi kita

Di direktori root proyek kami, buat folder controllers, lalu buat file index. js di folder pengontrol

Pertama, kami akan mengimpor penangan kesalahan global kami dan koneksi database MySQL kami

npm init -y0Mengimpor penangan kesalahan global

Selanjutnya, kita akan membuat penangan getAllTodos untuk mengambil semua todo di database kita. Handler ini akan menggunakan metode kueri MySQL, yang menggunakan kueri SQL dan fungsi callback sebagai parameter. Jika terjadi kesalahan selama operasi, kami akan mengembalikan kesalahan tersebut ke pengguna menggunakan kelas AppError. Kemudian, kami mengembalikan data ke pengguna saat operasi berjalan dengan sukses dengan kode status 200

npm init -y1Penangan getAllTodos

Selanjutnya, kita akan membuat penangan createTodo untuk menambahkan todo baru ke database kita. Kemudian kami memeriksa apakah klien mengirimkan formulir kosong dan mengembalikan pesan kesalahan 404

Kemudian, kami mendapatkan nama todo dari badan permintaan dan menyetel status setiap todo yang dibuat menjadi pending secara default. Menggunakan metode kueri mysql, kami membuat kueri penyisipan untuk menambahkan todo ke database kami

npm init -y2Penangan createTodo

Selanjutnya, kami membuat penangan getTodo untuk mendapatkan todo kami dengan ID. Pertama, kami akan memeriksa apakah id ditentukan dalam parameter permintaan, lalu mengembalikan kesalahan ke klien jika tidak ada yang ditemukan

Kami akan menjalankan pernyataan SQL untuk mendapatkan todo yang id-nya ada di parameter permintaan dan mengembalikannya ke klien

npm init -y3Pengendali getTodo

Selanjutnya, kita akan membuat handler updateTodo untuk memperbarui todo kita, kali ini akan memodifikasi todo yang id-nya ada di parameter request untuk diselesaikan

npm init -y4Penangan updateTodo

Terakhir, kami akan membuat penangan deleteTodo untuk menghapus todo dari database kami. Kami akan menjalankan pernyataan hapus untuk menghapus todo yang id adalah parameter permintaan

npm init -y5 Handler deleteTodo

Membuat penangan kesalahan global

Sekarang, mari kita segera membuat penangan kesalahan global kita. Untuk memulai, buat folder utils di direktori root proyek kami. Kemudian, buat appError. js dan errorHandler. file js. Tambahkan potongan kode berikut di bawah ke appError. file js

npm init -y_6AppError. file js

Kode di atas membuat kelas AppError yang memperluas kelas Error bawaan. Kami kemudian akan meneruskan pesan kesalahan dan status ke konstruktor kelas Error. Kemudian kami akan memeriksa jenis kesalahan apa yang terjadi di aplikasi kami dengan memulai kode status, dan menambahkan kesalahan tersebut ke pelacakan tumpukan kesalahan

Selanjutnya, buka errorHandler. js dan tambahkan potongan kode di bawah ini

npm init -y7 ErrorHandler. file js

Kode di atas akan memeriksa kemungkinan kesalahan dalam aplikasi kita dan mengirimkan kode kesalahan dan status yang sesuai ke klien tanpa merusak aplikasi kita

Membuat rute aplikasi

Di direktori root proyek kami, buat folder rute, lalu buat file index. js, dan tambahkan potongan kode berikut di bawahnya

npm init -y_8Rute untuk aplikasi

Kode di atas membuat objek router dari kelas router ekspres. Kemudian kami membuat rute berikut di aplikasi kami

  • Dapatkan Rute. untuk mendapatkan semua todos di database kami
  • Rute Pos. untuk menambahkan todo baru ke database kami
  • Dapatkan Rute. untuk mendapatkan todo dengan id-nya
  • Letakkan Rute. untuk memperbarui todo oleh id
  • Hapus Rute. untuk menghapus todo oleh id

Kemudian kami mengekspor objek router

Lihat Data dengan Arctype

Sekarang kami telah membuat semua rute kami. Mari sekarang hubungkan ke Arctype untuk memvisualisasikan data di database kita. Untuk melakukannya, kita perlu mengunduh Arctype dari situs resminya. Dapatkan Arctype diunduh dan diinstal, lalu sambungkan database Anda ke sana. Saat Anda meluncurkan Arctype, klik MySQL untuk membuat koneksi - ikuti panduan ini jika Anda memerlukan bantuan

Meluncurkan Arctype dan membuat koneksi

Kemudian, kami akan menambahkan kredensial koneksi kami dan menekan tombol simpan

Menambahkan kredensial kami di Arctype

Kami telah berhasil terhubung ke database kami. Anda akan melihat tabel database kami di sisi kanan dasbor Arctype. Klik tabel todolist untuk menjalankan beberapa kueri di database kami di Arctype

Kami dapat menambahkan catatan baru ke database kami dengan mengklik tab Sisipkan baris

Menambahkan catatan baru melalui tab Sisipkan Baris di Arctype

Kami juga dapat mengedit dan menanyakan tabel database kami menggunakan Arctype. dan banyak lagi

Kesimpulan

Anda sekarang mengerti cara membuat REST API menggunakan kerangka kerja Express—instal Express Node. js, membuat database MySQL, dan membuat aplikasi to-do sederhana. Hanya itu yang diperlukan

Mungkin Anda bisa mempelajari lebih lanjut tentang cara menggunakan MySQL dengan Node.js. js di sini. Jangan ragu untuk menghubungi Twitter jika Anda memiliki pertanyaan

Bagaimana cara menggunakan REST API di MySQL?

Integrasikan Data. Muat data dari REST API ke MySQL dengan memberikan kredensial database MySQL Anda, seperti nama pengguna resmi, kata sandi, informasi tentang IP host Anda, dan nilai nomor port. You will also need to provide a name for your database and a unique name for this destination.

Bisakah MySQL memicu panggilan REST API?

Jika Anda memiliki tabel mysql yang Anda pantau perubahannya, Anda dapat menggunakan pemicu untuk melakukannya (selama Anda memiliki msyql versi semi-modern). Sometimes you might want to notify another service of any change (remote logging service, message queue, etc).

Apakah SQL Server memiliki REST API?

Layanan Pelaporan Microsoft SQL Server 2017 mendukung Representational State Transfer (REST) ​​API . REST API adalah titik akhir layanan yang mendukung serangkaian operasi (metode) HTTP, yang menyediakan akses buat, ambil, perbarui, atau hapus untuk sumber daya dalam server laporan.

Bagaimana cara membuat API dengan MySQL?

Untuk melakukannya, klik tab Aplikasi yang terletak di bagian atas layar, lalu klik tombol Buat . Tetapkan nama dan deskripsi Aplikasi baru Anda, pastikan itu disetel ke Aktif, lalu tetapkan peran default MySQL seperti yang telah saya lakukan pada tangkapan layar di bawah ini.

Postingan terbaru

LIHAT SEMUA