Gdy Falcon (-Framework) nie może znaleźć trasy dla konkretnego żądania, zwracane jest 404. Jak mogę przesłonić ten domyślny handler? Chcę rozszerzyć obsługę niestandardową odpowiedzią.Zastąp domyślną obsługę błędu Falcon, gdy żadna z tras nie pasuje do
5
A
Odpowiedz
4
Domyślna handler gdy zasób nie pasuje to path_not_found responder:
Ale jak widać w sposobie falcon API _get_responder, to nie może być ręczne bez jakiejś małpy łatania.
O ile widzę, istnieją dwa różne sposoby korzystania z funkcji obsługi niestandardowe:
- podklasą klasy API i zastąpić metodę _get_responder więc wywołuje niestandardowego obsługi
- Użyj domyślnego trasa, która pasuje do dowolnej trasy, jeśli żadna z aplikacji nie jest dopasowana. Prawdopodobnie wolisz korzystać z sink zamiast trasy, więc przechwytujesz dowolną metodę HTTP (GET, POST ...) przy użyciu tej samej funkcji.
Polecam drugą opcję, ponieważ wygląda o wiele ładniej.
Twój kod będzie wyglądać następująco:
import falcon
class HomeResource:
def on_get(self, req, resp):
resp.body = 'Hello world'
def handle_404(req, resp):
resp.status = falcon.HTTP_404
resp.body = 'Not found'
application = falcon.API()
application.add_route('/', HomeResource())
# any other route should be placed before the handle_404 one
application.add_sink(handle_404, '')
Powiązane problemy
- 1. Jak mogę potwierdzić, że żadna z tras nie pasuje do testu integracji Rails?
- 2. Dezaktywuj domyślną obsługę błędu 404 Jetty
- 3. Jak wyświetlić wartość domyślną, gdy nie pasuje do zapytania?
- 4. string_agg Żadna funkcja nie pasuje do podanej nazwy
- 5. Zastąp domyślną ścieżkę wyszukiwania nagłówka
- 6. Zastąp domyślną metodę używając lambdy
- 7. Zastąp domyślną serializację JSON WCF
- 8. Żadna trasa nie pasuje, chociaż jest jedna w trasach prowizji
- 9. Dlaczego * nie pasuje, gdy + robi?
- 10. Selektor "NG-komponent" nie pasuje do żadnego błędu Elements
- 11. obiektu nie pasuje do typu docelowego, gdy próbuje użyć setValue
- 12. Zastąpić domyślną stronę błędu Sinatry NotFound Strona
- 13. SQLAlchemy and Falcon - inicjalizacja sesji
- 14. Wymyślaj szyny, nie ma tras wylogowania
- 15. pasuje do wyrażenia regularnego z opcjonalnym uprzedzona
- 16. Aplikacja Rails kończy się niepowodzeniem na Heroku: (Żadna trasa nie pasuje [GET] "/")
- 17. Jak powiązać obsługę zdarzeń tylko wtedy, gdy jeszcze nie istnieje?
- 18. Błąd Git: src refspec master nie pasuje do żadnego błędu: nie udało się przefaksować niektórych poprawek
- 19. Błąd walidacji: dane nie pasuje do żadnych schematów z 'oneOf'
- 20. ciąg analizujący nie pasuje, gdy regex jest zmienną
- 21. : żadna funkcja "__________" nie została zadeklarowana w klasie "_______"
- 22. mod_rewrite regex pasuje tylko wtedy, gdy pewien ciąg NIE istnieje.
- 23. \ b nie pasuje, gdy poprzedni znak jest granicą słowa
- 24. gdy wiele reguł wzór pasuje ruchomym celem
- 25. sed zastąpić całą linię, gdy pasuje znaleźć
- 26. PropertyInfo.GetValue() "Obiekt nie pasuje do typu celu."
- 27. Zastąp datę jquery
- 28. \ s + nie pasuje do wszystkich białych znaków?
- 29. "zmienna" lub "zmienna nie jest żadna"
- 30. Obraz nie pasuje do ramki UIImageView