search icon

Simpel JSON API med PHP

For at lave en simpel GET API JSON-formateret med PHP skal man bruge noget data og et par enkelte PHP-funktioner.

Headers

Alle JSON-formaterede dokumenter i PHP skal have en header, der fortæller, at det aktuelle dokument er formateret i JSON. Man kan også sætte flere headers, der angiver om det er muligt at tilgå data fra JSON-APIet fra andre sider

<?php
//HER GIVES TILLADELSE TIL, AT DER KAN HENTES DATA FRA APIet FRA ANDRE SIDER
header("Access-Control-Allow-Origin: *");

//HER FORTÆLLES, AT DENNE SIDE ER JSON-FORMATERET
header('Content-Type: application/json');

JSON-output med array

<?php

//ARRAY OPRETTES OG DER FYLDES DATA I
$cars = array(
  array(
    "maker" => "Ford",
    "model" => "Mustang",
  ),
  array(
    "maker" => "Volvo",
    "model" => "V60"
  )
);

echo json_encode($cars);

JSON-output med objekt

<?php
//TOMT OBJEKT OPRETTES
$car = new stdClass();

//HER FYLDES DATA I OBJEKTET
$car->maker = "Ford";
$car->model = "Mustang";

echo json_encode($car);

JSON-output af array med objekter

<?php
//ARRAY OPRETTES
$car_array = array();

TOMT OBJEKT INSTATIERES
$car = new stdClass();
$car->maker = "Ford";
$car->model = "Mustang";

//OBJEKTET INDSÆTTES I ARRAYET
array_push($car_array, $car);

$car = new stdClass();
$car->maker = "Volvo";
$car->model = "V60";

array_push($car_array, $car);

//JSON_PRETTY_PRINT-ARGUMENTET STILLER OUTPUTTET PÆNT OP, SÅ DET ER LÆSBART
echo json_encode($car_array, JSON_PRETTY_PRINT);

JSON-output fra database

<?php
$sql = "SELECT * FROM cars
        LIMIT 10";

$result = $conn->query($sql);

//ARRAY TIL DATA OPRETTES
$cars_array = array();

//HER LOOPES IGENNEM DATA FRA DATABASE
while($row = $result->fetch_object()){

  //DER OPRETTES ET NYT, TOMT OBJEKT FOR HVER RÆKKE FRA DATABASEN
  $car = new stdClass();

  //DATA FYLDES I OBJEKTET
  $car->id = $row->id;
  $car->year = $row->year;
  $car->make = $row->make;
  $car->model = $row->model;

  //DATA I OBJEKTET INDSÆTTES I ARRAYet		
  array_push($cars_array, $car);
}

//DATA UDSKRIVES I JSON-FORMAT
echo json_encode($data, JSON_PRETTY_PRINT, 3);

Skriv et svar

Verified by MonsterInsights