Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: Endpoint für API

  1. #1
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    827

    Standard Endpoint für API

    Hallo zusammen,
    ich steh ein bisschen auf dem Schlauch. Für eine API muss ich in Contao einen Endpoint erstellen und die übergebenen Post-Daten verarbeiten. Ich habe einen Controller erstellt, den ich über die Route auch erreichen kann. Ich scheitere jetzt aber daran, die Postdaten (json) auszulesen.

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

  3. #3
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    827

    Standard

    ok. wenn ich das request object übergeben lasse, existiert es auch. Aber wo finde ich die per POST übergebenen Daten?
    PHP-Code:
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use 
    Symfony\Component\HttpFoundation\Request;
    use 
    Symfony\Component\HttpFoundation\Response;

    /**
     * Handles front end routes.
     * path: /stwebhooks/apiAction.
     * @Route("/stwebhooks", defaults={"_scope" = "webhook", "_token_check" = false}) 
     */
    class FrontendController extends AbstractController
    {

    /**
         * Renders the details content.
         *
         * @Route("/api", name="webhook_api", methods={"POST"}) 
         */
        
    public function apiAction(Request $request) : Response
        
    {
           
    $this->container->get('contao.framework')->initialize();
            
            
    $ipAddrArr=array(
                
    '1.1.1.111',
                
    '2.2.2.222',
                
    '3.3.3.333',
                
    'xxx.xxx.xxx.xxx');

            
    $ipValidation false// allow list of ip adresses only
            
            
    $remoteAddr getenv("REMOTE_ADDR") ;
            if (
    $ipValidation && !in_array($remoteAddr$ipAddrArr))
            {
                exit(
    'not allowed!');
            }
            
    $data $request->attributes->all();
            
    print_r($data);
            die();
        }

    Geändert von ChrMue (30.12.2020 um 17:42 Uhr)

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Fan
    Registriert seit
    19.06.2009.
    Beiträge
    827

    Standard

    Ich habs hinbekommen....statt
    PHP-Code:
    $data $request->attributes->all(); 
    muss es heißen
    PHP-Code:
    $data json_decode($request->getContent(), true); 

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
  •