Beispiel getRestaurantMenus mit cURL

Für die Ausgabe der Menüs muss die restaurant_id auf ein Restaurant zeigen, das aktuelle Tagesmenüs publiziert hat.

Ausgabe des JSON Formats

Date 18.04.2024

Menu 1: Penne Amatriciana

Menu 2: Panierte Schweineschnitzel

Menu 3: Wolfsbarschfilet und Riesen Krewetten

Ausgabe des XML Formats

Date 18.04.2024

Menu 1: Penne Amatriciana

Menu 2: Panierte Schweineschnitzel

Menu 3: Wolfsbarschfilet und Riesen Krewetten

PHP-Code für diese Beispielseite

<?php
    
// cURL initialisieren
    
$curlHandle curl_init();

    
// Authentifizierung festlegen
    
curl_setopt($curlHandleCURLOPT_HTTPAUTHCURLAUTH_DIGEST);

    
// Name und PW festlegen
    
curl_setopt($curlHandleCURLOPT_USERPWD"api.demo@lunchgate.ch:demo");

    
// URL festlegen
    
curl_setopt($curlHandleCURLOPT_URL"http://api2.lunchgate.ch/restaurant/menu?restaurant_id=$restaurant_id&limit=3&response=json");

    
// Antwortformat JSON festlegen
    
curl_setopt($curlHandleCURLOPT_HTTPHEADER, array("Accept: application/json"));
    
curl_setopt($curlHandleCURLOPT_RETURNTRANSFERTRUE);

    
// cURL ausführen und Antwort in $response_json schreiben
    
$response_json curl_exec($curlHandle);

    
// alternative mit XML Format
    
curl_setopt($curlHandleCURLOPT_URL"http://api2.lunchgate.ch/restaurant/menu?restaurant_id=$restaurant_id&limit=3&response=xml");
    
curl_setopt($curlHandleCURLOPT_HTTPHEADER, array("Accept: application/xml"));
    
$response_xml curl_exec($curlHandle);

    
// cURL schliessen
    
curl_close($curlHandle);

    
// $response als Object in $lunchgatemenu
    
$lunchgatemenu_json json_decode($response_json);

    echo 
"<h2>Ausgabe des JSON Formats</h2>
    <p><em>Date</em>
$lunchgatemenu_json->date</p>";
    if (isset(
$lunchgatemenu_json->menu)) {
        
$menu_counter 0;
        foreach (
$lunchgatemenu_json->menu as $menu) {
            echo 
"<p><em>Menu " . ++$menu_counter "</em>: " htmlspecialchars($menu->title) . "</p>";
        }
    } else {
        echo 
"no menus available";
    }

    
// die XML Ausgabe enthält ein umschliessendes Tag mit dem Befehlsnamen "getRestaurantMenus"
    
$lunchgatemenu_xml simplexml_load_string($response_xml)->getRestaurantMenus;

    echo 
"<h2>Ausgabe des XML Formats</h2>
    <p><em>Date </em>
$lunchgatemenu_xml->date</p>";
    if (!empty(
$lunchgatemenu_xml->menu)) {
        
$menu_counter 0;
        foreach (
$lunchgatemenu_xml->menu->children() as $menu) {
            echo 
"<p><em>Menu " . ++$menu_counter "</em>: " htmlspecialchars($menu->title) . "</p>";
        }
    } else {
        echo 
"no menus available";
    }
?>