JSON APIs

JSON (JavaScript Object Notation) adalah format pertukaran data berbasis teks yang distandarkan dalam RFC 8259. Namanya menyebut JavaScript, tetapi format ini independen bahasa: ia hanya mendefinisikan sintaks nilai, yaitu object, array, string, number, boolean, dan null.

JSON menyeragamkan serialisasi data, bukan kontrak API itu sendiri. Dua pihak yang bertukar JSON masih perlu menyepakati field, makna, dan perilaku error secara terpisah.

Dua makna "JSON API"

Istilah "JSON API" dipakai dalam dua arti yang perlu dibedakan:

  1. JSON over HTTP secara umum. API yang mempertukarkan representasi JSON lewat HTTP. Ini praktik dominan, bukan spesifikasi: bentuk dokumen ditentukan penyedia API.
  2. JSON:API, spesifikasi tertentu. Konvensi bermedia type application/vnd.api+json dari jsonapi.org yang membakukan struktur dokumen: resource object, relationships, errors, pagination, dan compound document. Tujuannya agar client dapat generik terhadap banyak server.

Kosakata entity, bundle, dan field

Frasa "entity types, bundles, dan fields" berasal dari model data Drupal dan dimunculkan modul JSON:API Drupal. Itu implementasi CMS tertentu di atas konvensi, bukan bagian spesifikasi inti JSON:API maupun JSON. Rujukan dokumentasi Drupal tercantum di Sumber namun tidak terverifikasi penuh saat ingest karena tantangan bot.

Sintaks bukan validasi

JSON hanya menjamin keabsahan sintaks. Nilai yang masuk tetap perlu divalidasi terhadap skema atau aturan aplikasi; Dynamic inputs require runtime validation despite static types menjelaskan mengapa pemeriksaan runtime tetap diperlukan di batas sistem.

Hubungan dengan halaman lain

APIs menempatkan format data sebagai detail kontrak HTTP API, sedangkan REST mengatur gaya arsitektur di atasnya; JSON berada pada lapisan representasi. Di sisi penyimpanan, JSON dan Data Tidak Terstruktur di Postgres membahas tipe JSON di database, konteks yang berbeda dari pertukaran antarsistem.

Sumber