ارسال پاسخهای JSON
در این بخش از کتاب، handlerهای API را بهروزرسانی میکنیم تا به جای متن ساده، پاسخهای JSON برگردانند.
JSON، مخفف JavaScript Object Notation، یک قالب متنی قابل خواندن برای انسان است که میتواند برای نمایش دادههای ساختیافته استفاده شود. برای مثال، در پروژه ما یک فیلم میتواند با JSON زیر نمایش داده شود:
{
"id": 123,
"title": "Casablanca",
"runtime": 102,
"genres": [
"drama",
"romance",
"war"
],
"version": 1
}
برای یک مرور خیلی سریع بر syntax مربوط به JSON...
- آکولادهای
{}یک JSON object را تعریف میکنند که از جفتهای key-value جداشده با کاما ساخته شده است. - کلیدها باید string باشند و مقدارها میتوانند string، number، boolean، JSON objectهای دیگر یا یک array از هرکدام از این موارد باشند که داخل
[]قرار میگیرد. - stringها باید داخل double quote یعنی
"قرار بگیرند، نه single quote یعنی'، و مقدارهای boolean یاtrueهستند یاfalse. - خارج از string، کاراکترهای whitespace در JSON هیچ معنای خاصی ندارند؛ بنابراین کاملا معتبر است که همان فیلم را با JSON زیر هم نمایش دهیم:
{"id":123,"title":"Casablanca","runtime":102,"genres":["drama","romance","war"],"version":1}
اگر تا حالا اصلا از JSON استفاده نکردهاید، این راهنمای مقدماتی یک معرفی جامع ارائه میکند و پیشنهاد میکنم قبل از ادامه آن را بخوانید.
در این بخش از کتاب یاد میگیرید:
چطور از REST API خود پاسخهای JSON ارسال کنید، از جمله پاسخهای خطا.
چطور typeهای native در Go را با استفاده از پکیج
encoding/jsonبه JSON encode کنید.تکنیکهای مختلف برای سفارشیسازی نحوه encode شدن typeهای Go به JSON؛ ابتدا با استفاده از struct tagها، و سپس با بهره گرفتن از interface مربوط به
json.Marshaler.چطور یک helper قابل استفاده مجدد برای ارسال پاسخهای JSON بسازید که مطمئن شود همه پاسخهای API شما ساختاری منطقی و یکدست دارند.