slogan3

Ontwikkel een dynamische PHP API-endpoint

description

Met deze prompt kan ik snel een functioneel en op maat gemaakt PHP API-endpoint ontwikkelen dat flexibel omgaat met verschillende inputparameters en verwerkingslogica. Dit bespaart tijd, voorkomt standaardcode en helpt me moderne webservices te bouwen zonder zelf vanaf nul te hoeven beginnen.

prompt

Help me een PHP API-endpoint te maken dat dynamisch gegevens verwerkt op basis van de volgende parameters: API Endpoint Naam: <voer de naam van het API-endpoint in> HTTP Methode (GET, POST, PUT, DELETE): <selecteer de HTTP methode> Verwachte Input Parameters ( ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorbeeld van een PHP API-endpoint dat voldoet aan jouw specificaties: ```php <?php // gebruikersgegevens.php // Set headers voor JSON response header('Content-Type: application/json'); // Database connectie instellingen $host = 'localhost'; $dbname = 'jouw_database_naam'; $username = 'jouw_db_gebruiker'; $password = 'jouw_db_wachtwoord'; try { // Maak PDO verbinding $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password); // Zet error mode op exception $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { // Fout bij connectie http_response_code(500); echo json_encode(['error' => 'Database verbinding mislukt: ' . $e->getMessage()]); exit; } // Controleer dat we een GET verzoek gebruiken if ($_SERVER['REQUEST_METHOD'] !== 'GET') { http_response_code(405); echo json_encode(['error' => 'Method not allowed']); exit; } // Haal JSON input op $input = json_decode(file_get_contents('php://input'), true); // Controleer of user_id aanwezig is if (!isset($input['user_id']) || !is_int($input['user_id'])) { http_response_code(400); echo json_encode(['error' => 'Ongeldige input: user_id is vereist en moet een integer zijn.']); exit; } $user_id = $input['user_id']; try { // Prepareer SQL statement $stmt = $pdo->prepare('SELECT * FROM gebruikers WHERE user_id = :user_id'); $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT); $stmt->execute(); // Haal gebruiker op $gebruiker = $stmt->fetch(PDO::FETCH_ASSOC); if ($gebruiker) { // Gebruiker gevonden, stuur JSON terug echo json_encode(['status' => 'success', 'gegevens' => $gebruiker]); } else { // Geen gebruiker gevonden http_response_code(404); echo json_encode(['status' => 'fout', 'message' => 'Gebruiker niet gevonden.']); } } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Database fout: ' . $e->getMessage()]); } ?> ``` **Uitleg:** - Het script luistert naar een GET-verzoek. - Het verwacht JSON-input met het `user_id`. - Het maakt verbinding met een MySQL database. - Het haalt de gegevens op uit de tabel `gebruikers` op basis van `user_id`. - De response is in JSON-formaat. - Voor gebruik, vervang je de databasegegevens met jouw eigen gegevens. **Let op:** Omdat GET requests meestal parameters in de URL hebben, wordt hier `file_get_contents('php://input')` gebruikt om JSON te lezen, wat niet standaard is voor GET-verzoeken. Een alternatief is om `user_id` via URL-parameters te sturen, bijvoorbeeld `?user_id=123`. Wil je dat ik dat voorbeeld ook voor je maak?
provider: deepseek
model: deepseek-chat
Hier is een PHP-implementatie voor je API-endpoint: ```php <?php header("Content-Type: application/json; charset=UTF-8"); // Database configuratie $servername = "localhost"; $username = "jouw_gebruikersnaam"; $password = "jouw_wachtwoord"; $dbname = "jouw_database"; // Input parameters verwerken $input = json_decode(file_get_contents('php://input'), true); $user_id = isset($input['user_id']) ? (int)$input['user_id'] : null; // Valideer input if ($user_id === null || $user_id <= 0) { http_response_code(400); echo json_encode(["error" => "Ongeldige user_id parameter"]); exit; } try { // Database verbinding $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL query voorbereiden $stmt = $conn->prepare("SELECT * FROM gebruikers WHERE user_id = :user_id"); $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT); $stmt->execute(); // Resultaat ophalen $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user) { // Succesvolle response echo json_encode([ "success" => true, "data" => $user ]); } else { // Gebruiker niet gevonden http_response_code(404); echo json_encode([ "success" => false, "error" => "Gebruiker niet gevonden" ]); } } catch(PDOException $e) { // Database error http_response_code(500); echo json_encode([ "success" => false, "error" => "Database fout: " . $e->getMessage() ]); } $conn = null; ?> ``` **Belangrijke aanpassingen die je moet maken:** 1. **Database credentials**: Vervang `jouw_gebruikersnaam`, `jouw_wachtwoord` en `jouw_database` met je eigen MySQL credentials 2. **Gebruikers tabel structuur**: Zorg dat je tabel `gebruikers` bestaat met een `user_id` kolom **Gebruiksvoorbeeld:** ```bash curl -X GET http://jouwdomein.com/gebruikersgegevens.php \ -H "Content-Type: application/json" \ -d '{"user_id": 123}' ``` **Beveiligingsopmerkingen:** - Gebruik prepared statements (zoals hier gedaan) om SQL injection te voorkomen - Overweeg authenticatie toe te voegen als de data gevoelig is - Valideer altijd input data - Gebruik HTTPS in productie Je kunt dit endpoint verder uitbreiden met extra functionaliteit zoals paginering, filtering of extra validatie naar behoefte.