REST API development - apa pendekatan Code First?

Dalam artikel ini, kami akan terus membiasakan diri dengan pengembangan REST API dan melihat pendekatan Code-First.

Mengembangkan API ISTIRAHAT yang baik adalah penting untuk memiliki layanan microser yang baik. Pendekatan Code-First berfokus pada menghasilkan kontrak dari kode. Apakah ini pendekatan terbaik?


Kamu akan belajar


  • Apa pendekatan Code-First untuk mengembangkan REST API?
  • Apa manfaat dari pendekatan Code-First?
  • Apa kerugian dari pendekatan Code-First?
  • Kapan Anda menggunakan pendekatan Code-First?

API SISA


Ini adalah artikel keempat dalam serangkaian artikel di REST API:


Apa pendekatan Code-First?


Setiap kali Anda mengembangkan layanan, seperti REST API atau SOAP API, Anda dapat memilih salah satu dari dua pendekatan:

  • Kode Pertama dan hasilkan kontrak dari kode
  • Kontrak Pertama dan pengembangan kode berbasis kontrak

Mari kita mulai dengan contoh cepat untuk Code First.

Spring Boot Code Contoh Pertama REST API


Kami sedang mengembangkan layanan web RESTful menggunakan Spring Boot Framework untuk menghasilkan API. Misalnya, dalam API recoverveAllUsers (), kami membuka URI " / pengguna " dan
kami mengembalikan semua pengguna (sumber daya / pengguna ),
memanggil metode layanan.

Saat kami membuka URL ini, kami mengembalikan semua pengguna:


Metode layanan lain didefinisikan dengan cara yang sama, masing-masing memiliki URI sendiri. Dalam contoh ini, kami mengambil kode dan menghasilkan dokumentasi darinya. Dokumentasi ini menjelaskan bagaimana pengguna dapat menggunakan layanan ini. Untuk melakukan ini, kami menggunakan format dokumentasi Swagger:



Kesombongan memungkinkan kita menghasilkan dokumentasi dari kode. Misalnya, inilah yang dihasilkan oleh Swagger untuk meminta semua pengguna:



Ini menampilkan jenis pesan respons yang kami terima dan status respons yang menyertainya. Anda bahkan dapat menghubungi layanan ini dari Swagger untuk mendapatkan jawaban:



Anda juga dapat mengirim permintaan POST ke " / pengguna ":



Swagger akan memberi tahu kami bagaimana menyusun pesan permintaan dan menentukan format masing-masing bidang di dalamnya. Dia juga akan memberi tahu Anda jenis respons yang akan Anda terima, bersama dengan kode respons. Apa yang dihasilkan oleh Swagger dari kode disebut kontrak .

Manfaat Kode Pertama


Keuntungan utama dari pendekatan ini:

  • Kontrak dengan upaya minimal : menghasilkan kontrak tidak memerlukan upaya tambahan. Ini hanyalah produk sampingan dari pengembangan layanan, karena dapat dihasilkan secara otomatis dari kode.
  • Sinkronisasi kode dan kontrak : karena kontrak dihasilkan dari kode, mereka selalu disinkronkan satu sama lain

Kerugian Kode Pertama


Kerugian dari pendekatan ini adalah sebagai berikut:

Tidak ada pengembangan paralel


Produsen layanan dan konsumen layanan tidak dapat berkembang secara paralel. Pertama, Anda perlu mengembangkan layanan, kemudian menghasilkan kontrak, dan hanya setelah itu Anda dapat menulis kode konsumen yang akan mematuhi kontrak. Tanpa memahami kontrak, konsumen tidak dapat dikembangkan.

Tidak ada tujuan untuk tim


Karena kontrak tidak dapat diketahui sebelum layanan dikembangkan, tidak ada tujuan untuk berbagai pemangku kepentingan dalam pengembangan. Oleh karena itu, ada kemungkinan bahwa arah akan menyimpang dan perubahan yang tidak perlu akan dilakukan, yang akan mengakibatkan pemborosan usaha.

Tidak ada kompatibilitas lintas platform


Pada beberapa platform lama, tidaklah mudah untuk menghasilkan kontrak dari kode. Sebagai akibatnya, ketidakcocokan antar platform sering terjadi untuk kontrak yang dihasilkan.

Pada masalah ini ada video penulis.

Ringkasan


Dalam artikel ini, kami menjelajahi pendekatan Code First untuk membangun REST API. Meskipun pendekatan berbasis kode efektif dari sudut pandang pengembang, pendekatan ini menghadapi masalah serius dalam hal pengembangan bersama antara pemasok dan konsumen.

Bacaan tambahan


Pengembangan API: Desain-Pertama atau Kode-Pertama?
Cara Mengembangkan Layanan Web TENANG di ASP.NET Web API

Source: https://habr.com/ru/post/id483322/


All Articles