No estaría entendiendo bien como lograr que una URL se pueda usar solo mediante API, y que al ingresarla en el navegador arroje 403. Hice una clase y en def get(…) hacía raise PermissionDenied pero no me devolvía el 403.html, dibujaba la pantalla de DRF.
La idea es subir información mediante un POST (esto me funcionó).
Buenas! Interesante pregunta. Aún no entiendo del todo, sin embargo.
¿qué significaría que una URL se pueda consultar “sólo mediante API”? Lo presentás como algo opuesto al navegador. Será que usás otra herramienta como Postman o curl o wget, o requests.get?
En el fondo, cualquiera de estos métodos hace un HTTP Request. Probablemente inspeccionando los headers del request puedas discernir si el request viene de un firefox, un chrome, python requests, etc. Pero un header es súper fácil de setear. Puedo hacerme pasar por firefox desde python. Puedo hacerme pasar por chrome desde firefox.
Podrías dar algún ejemplo de API que no responda a consultas provenientes de un navegador?