Ergebnis 1 bis 4 von 4

Thema: Mitglieder über eine API anlegen?

  1. #1
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    643

    Standard Mitglieder über eine API anlegen?

    Hallo liebe Contao Community,

    gibt es unter Contao 4.13. eine Möglichkeit, Mitglieder über eine API Schnittstelle zu verwalten? Also neue Mitglieder anlegen, Mitglieder anpassen und löschen?
    Unter den Erweiterungen habe ich z.B. "heimrichhannot/contao-api-bundle" gefunden. Oder gibt es noch eine andere Möglichkeit?

    Danke für die Antworten.
    Dirk

  2. #2
    Contao-Nutzer
    Registriert seit
    30.07.2015.
    Beiträge
    140

    Standard

    Ich habe auch schon öfter nach API Möglichkeiten hier und auch unter den Extensions gesucht. Ich wüsste nicht, dass es da momentan etwas gibt.

    Es ist aber relativ leicht, sich dafür einen eigenen Controller zu schreiben...
    Wir sind Contao-Sponsor :-)

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.112
    Partner-ID
    10107

    Standard

    Wir haben uns auch dafür einen eigenen Controller geschrieben.
    » sponsor me via GitHub or PayPal or Revolut

  4. #4
    Contao-Fan Avatar von dirksche
    Registriert seit
    05.08.2009.
    Ort
    Grosslittgen
    Beiträge
    643

    Standard

    Wie würde so ein Controller aussehen? Etwa so?

    PHP-Code:
    // Beispiel: system/modules/mein_modul/src/Controller/Api/MemberController.php

    namespace Contao\Module\MeinModul\Controller\Api;

    use 
    Contao\CoreBundle\Controller\AbstractController;
    use 
    Contao\MemberModel;
    use 
    Symfony\Component\HttpFoundation\JsonResponse;
    use 
    Symfony\Component\HttpFoundation\Request;
    use 
    Symfony\Component\Routing\Annotation\Route;

    class 
    MemberController extends AbstractController
    {
        
    /**
         * @Route("/api/create-member", name="api_create_member", methods={"POST"})
         */
        
    public function createMember(Request $request)
        {
            
    // Daten aus dem JSON-Request extrahieren
            
    $data json_decode($request->getContent(), true);

            
    // Überprüfen Sie, ob die erforderlichen Daten vorhanden sind
            
    if (empty($data['username']) || empty($data['email'])) {
                return new 
    JsonResponse(['error' => 'Benutzername und E-Mail sind erforderlich.'], 400);
            }

            
    // Überprüfen Sie, ob der Benutzer bereits existiert
            
    if (MemberModel::findBy('username'$data['username']) || MemberModel::findBy('email'$data['email'])) {
                return new 
    JsonResponse(['error' => 'Benutzer existiert bereits.'], 400);
            }

            
    // Neues Mitglied erstellen
            
    $member = new MemberModel();
            
    $member->username $data['username'];
            
    $member->email $data['email'];

            
    // Passwort setzen (optional)
            
    if (!empty($data['password'])) {
                
    $member->password password_hash($data['password'], PASSWORD_BCRYPT);
            }

            
    // Weitere Mitgliederdaten setzen

            // Speichern Sie das Mitglied
            
    $member->save();

            
    // Erfolgreiche Antwort
            
    return new JsonResponse(['success' => true'message' => 'Mitglied erfolgreich erstellt.']);
        }


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •