Calling Developers!
We are reenergizing our code contribution process! Learn More

What are the Slack Archives?

It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.

Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..

Hello Team! I am new to Spryker. I am trying to a REST API that reads in data from an external sourc

Options
U04949W9DJ8
U04949W9DJ8 Posts: 19 🧑🏻‍🚀 - Cadet

Hello Team!
I am new to Spryker. I am trying to a REST API that reads in data from an external source that my module can use from the backend. I'm having trouble finding a place to start. Does anyone have any documentation or first steps they could share?

Comments

  • Alberto Reyer
    Alberto Reyer Lead Spryker Solution Architect / Technical Director Posts: 690 🪐 - Explorer
    Options

    GuzzleHttp should be already distributed with Spryker.
    For usage see https://docs.guzzlephp.org/en/stable/quickstart.html

    How to configure guzzle in Spryker to use it (please do it properly in the factory of your business layer, here it's just a lot shorter):

    <?php
    
    
    use GuzzleHttp\Client;
    use GuzzleHttp\HandlerStack;
    use GuzzleHttp\MessageFormatter;
    use GuzzleHttp\Middleware;
    use GuzzleHttp\RequestOptions;
    use Spryker\Shared\Log\Config\DefaultLoggerConfig;
    
    $stackHandler = HandlerStack::create();
    $stackHandler->push(Middleware::log(
        $this->getLogger(new DefaultLoggerConfig()),
        new MessageFormatter(MessageFormatter::DEBUG),
    )); // debug format
    $config = [
        RequestOptions::CONNECT_TIMEOUT => 5,
        RequestOptions::TIMEOUT => 10 * 60, // seconds
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'debug' => false,
        'handler' => $stackHandler,
    ];
    $httpClient = new Client($config);
    

    Examples:

    $response = $httpClient->request('GET', '<https://example.com>');
    $data = json_decode($response->getBody()->getContents(), true);
    $response = $httpClient->post('<https://example.com>', ['body' => 'foo']);
    $data = json_decode($response->getBody()->getContents(), true);