Membuat JSON Feed Dengan Laravel Framework

Tutorial Laravel – Membuat JSON Feed Dengan Laravel

Pada artikel kali ini saya akan menjelaskan tutorial tentang tips bagaimana cara membuat JSON Feed dengan Laravel Framework. JSON Feed adalah standar baru untuk memformalkan RSS Feed dengan format data JSON yang bertujuan untuk menyederhanakan proses generate RSS yang biasa kita gunakan dengan standar XML. Format data ini memiliki banyak kelebihan ketimbang dengan XML karena format data JSON adalah full text yang dapat diparse dengan mudah oleh hampir semua bahasa pemrograman  ketimbang XML yang bersifat DOM Element.

JSON Feed Dengan Laravel Framework #Script

Pada bagian ini saya akan memberikan contoh format RSS dengan bentuk data JSON yang sudah jadi, hasilnya adalah sebagai berikut :

{
    "version": "https://jsonfeed.org/version/1",
    "title": "Contoh Feed",
    "home_page_url": "https://contoh.com/",
    "feed_url": "https://contoh.com/feed.json",
    "items": [
        {
            "id": "2",
            "content_text": "This is a item kedua.",
            "url": "https://contoh.com/item-2"
        },
        {
            "id": "1",
            "content_html": "<p>Hello, world!</p>",
            "url": "https://contoh.com/item-1"
        }
    ]
}

Sekarang kita mulai dengan menampilkan terlebih dahulu data postingan dari database. Contohnya seperti berikut :

$artikel = Artikel::limit(20)->get();

Setelah itu kita buat array untuk format awalnya.

$data = [
    'version' => 'https://jsonfeed.org/version/1',
    'title' => 'Contoh JSON Feed',
    'home_page_url' => 'https://contoh.com/',
    'feed_url' => 'https://contoh.com/feed/json',
    'items' => [],
];

Pada bagian items, kita akan isi dengan data dari model artikel yang sudah kita eksekusi sebelumnya.

foreach ($artikel as $key => $val) {
    $data['items'][$key] = [
        'id' => $val->id,
        'title' => $val->judul,
        'url' => 'https://contoh.com/'.$val->url,
        'image' => $val->image,
        'content_html' => $val->konten,
        'date_published' => $val->created_at->toRfc3339String(),
        'date_modified' => $val->updated_at->toRfc3339String(),
        'author' => [
            'name' => $val->nama
        ],
    ];
}

di bagian date_published dan date_modified, saya menggunakan package Carbon untuk mengkonversi data timestamp ke format RFC 3339 yang sudah menjadi standar yang dibutuhkan JSON, untuk spek lainnya kamu bisa langsung mengunjungi dokumentasi resmi di https://jsonfeed.org. script akhirnya adalah sebagai berikut :

public function json()
{
    $artikel = Artikel::limit(20)->get();

    $data = [
        'version' => 'https://jsonfeed.org/version/1',
        'title' => 'Contoh JSON Feed',
        'home_page_url' => 'https://contoh.com/',
        'feed_url' => 'https://contoh.com/feed/json',
        'items' => [],
    ];

    foreach ($artikel as $key => $val) {
        $data['items'][$key] = [
            'id' => $val->id,
            'title' => $val->judul,
            'url' => 'https://contoh.com/'.$val->url,
            'image' => $val->image,
            'content_html' => $val->konten,
            'date_published' => $val->created_at->toRfc3339String(),
            'date_modified' => $val->updated_at->toRfc3339String(),
            'author' => [
                'name' => $val->nama
            ],
        ];
    }
    return $data;
}

Selesai. Mudah kan ? Silahkan dicoba dan semoga bermanfaat.

Tinggalkan komentar