plotly / plotly/plotly.py

allow custom HTTP headers (e.g. bearer token) to Mapbox layer source

Ouverte
#4,566 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feature P3
Langage dominant
Python
Étoiles
18.8k
Forks
2.8k
Merge moyen
16 h 26 min
PR mergées (30 j)
21

Description

Hi!

I wanted to display a Mapbox layer that requires authentication through bearer tokens, i.e. when doing something like:

fig.update_layout(
    mapbox_style="white-bg",
    mapbox_layers=[
        {
            "below": 'traces',
            "sourcetype": "raster",
            "sourceattribution": "My private ortho",
            "source": [
                "https://my_private_source.com/MapServer/tile/{z}/{y}/{x}"
            ]
        }
      ]
)

I need to pass custom HTTP headers to each tile request. In JavaScript, this can be easily achieved with the Mapbox API thanks to transformRequest (see here):

const map = new mapboxgl.Map({
  container: 'map',
  center: [2.35, 48.86],
  zoom: 13,
  transformRequest: (url, resourceType) => {
    if (url.startsWith('https://my_private_source.com')) {
      return {
        url: url,
        headers: { 'Authorization': 'Bearer ' + my_private_token }
      }
    }
  }
});

However, this does not seem supported by plotly.py, or am I missing something? With some pointers I could work on a PR, but I'm not sure where to start in the code base.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

L’issue ne mentionne aucun fichier ni test. Commencez par retracer la manière dont plotly.py sérialise mapbox_layers et dont la carte JavaScript demande les tuiles raster, puis comparez ce parcours avec l’exemple transformRequest fourni en lien. C’est terminé lorsque des headers personnalisés peuvent être fournis pour chaque requête de tuiles de couche Mapbox et que le comportement est couvert par des tests appropriés.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, python
Domaine
frontend, web-dev
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.