Skip to content

Strategy for preview implementation #58

@ghisleouf

Description

Hello everybody,

I'm back with another question which is much more about getting your advices and best practices for preview setup.

Let'say that I setup a website called www.mysite.com with Contentful and I want to add the preview feature.

What I have in mind is that I want to setup a simple preview passing a query string parameter like ?preview=1 to switch to preview mode. For example, on the homepage https://www.mysite.com/ will switch to preview mode when I add https://www.mysite.com/?preview=1

First question, is it a good idea ?

Now, going deeper in it, I created a service called "Contentful" where I inject the client thanks to dependency injection:

<?php

namespace App\Service;

use Contentful\Delivery\Client\ClientInterface;
use Contentful\Delivery\Query;
use Contentful\Delivery\Resource\Entry;

class Contentful
{


    private ClientInterface $client;

    public function __construct(ClientInterface $client)
    {
        $this->client = $client;
    }
...

Now, I'm a little bit stuck about the way to switch to preview API with my client injected like that.
What I have in mind is :

  • Intercept all the request to my website
  • Check if the query string preview=1 exists
  • Create a factory to inject the client saying to use preview API instead of main API when the query string is there

Is it a good strategy or am I overcomplicating things ?
What is yours ? ( using a subdomain ? )

Thanks for your feedback.

Best.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions