Solution lorsque Not Found apparaît lors de la frappe de l'API de Django REST Framework de l'extérieur

problème

Lorsque j'ai essayé d'afficher des informations spécifiques en appuyant sur l'API de Django REST Framework (DRF) à partir de Nuxt.js, Not Found est apparu dans le journal du côté de Django.

Tout d'abord, je pensais que c'était un problème côté Django, donc je l'ai vérifié une fois sur la console DRF, mais les données existent et peuvent être visualisées. C'est une question simple, mais j'ai fait une erreur par inadvertance, je vais donc la laisser comme article au cas où.

Solution

Si Not Found se produit à partir des conditions préalables ci-dessus, vous avez commis une erreur lors de la définition du point d'entrée.

En premier lieu, c'est une prémisse, mais dans le routage de Django, si une URL autre que celle décrite dans urls.py est entrée, elle sera inconditionnellement introuvable si la gestion des erreurs 404 n'est pas effectuée. Par conséquent, il y a une forte possibilité que la description du point d'entrée appelé du côté Nuxt.js soit incorrecte.

Par exemple

async asyncData ({ $axios, params }) {
    try {
      const user = await $axios.$get('user')
      return { user }
    } catch (e) {
      return { user: [] }
    }

Si vous essayez d'obtenir des données sous la forme de, dans urls.py du projet côté Django

urls.py


urlspatterns = [
      path('api/',include('sample.urls')),
]

Et écris

sample/urls.py


urlspatterns = [
      path('user/',UserListView.as_view()),
]

Vous devez écrire dans un format comme celui-ci. C'est parce que les données de ʻuser ne peuvent être obtenues que si elles proviennent d'une adresse telle que ʻapi / user de la même manière que l'écriture de DRF. Par conséquent, Nuxt.js doit également écrire d'une manière qui correspond au routage côté Django.

C'est facile, mais si vous séparez le front-end et le back-end et frappez le serveur API de l'extérieur, il est facile de l'oublier. Au moins cette fois, j'en étais un peu accro. Je suis heureux d'avoir une meilleure compréhension du routage dans ce domaine qu'auparavant.

J'espère que cet article aide quelqu'un.

Recommended Posts

Solution lorsque Not Found apparaît lors de la frappe de l'API de Django REST Framework de l'extérieur
Créer une API REST pour faire fonctionner dynamodb avec le Framework Django REST
Comprendre la commodité de Django Rest Framework
Notes diverses sur le framework Django REST
Essayez d'accéder à l'API Spotify dans Django.
Comment générer automatiquement un document API avec le framework Django REST et POST à partir de l'écran de document
J'ai essayé d'accéder à l'API Qiita depuis le début
L'araignée introuvable apparaît lors de l'exploration avec Scrapy
Lorsque j'ai déployé l'application Django sur Heroku, j'ai obtenu le module introuvable: <nom-projet> .wsgi.
Solution lorsque Linux ne reconnaît pas la caméra intégrée
Essayez de créer une application Todo avec le framework Django REST
Lorsque vous souhaitez filtrer avec le framework Django REST
[Django Rest Framework] Personnalisez la fonction de filtre à l'aide de Django-Filter
Création d'une API qui renvoie des résultats d'inférence négatifs-positifs à l'aide de BERT dans le framework Django REST
Bases du framework Django REST
Astuces Django Rest Framework
La première API à créer avec le framework Python Djnago REST
Comment réinitialiser le mot de passe via l'API à l'aide du framework Rest Django