Я хотел бы определить REST API с общим шаблоном:
mysite.com/OBJECT_ID/associations
Например:
mysite.com/USER_ID/vacations
- управление отпуском пользователей
mysite.com/USER_ID/music
- управлять музыкой в музыкальной библиотеке пользователя
mysite.com/PLAYLIST_ID/music
- управлять музыкой в контексте заданного списка воспроизведения
Я использую торнадо на стороне сервера и ищу предложения о том, как определить RequestHandlers для этого API. Например, я хочу определить обработчик как:
/([0-9,a-z,A-Z,-]+)/music",MusicHandler),
но я застрял в реализации MusicHandler, которая должна знать, поддерживает ли объект, указанный в uri, музыку в первую очередь, то есть, как защититься от вызова, подобного
mysite.com/LOCATION_ID/music
Где локации не связаны с музыкой.
Лучшее исправление для изменения API для включения типа i.e.:
mysite.com/users/USER_ID/music
или
mysite.com/playlists/PLAYLIST_ID/music
, а затем отдельный обработчик для каждого:
/users/([0-9,a-z,A-Z,-]+)/music",UserMusicHandler),
/playlists/([0-9,a-z,A-Z,-]+)/music",PlaylistMusicHandler)
Это кажется неправильным, но я не совсем понимаю, как заставить это работать. Я уверен, что это простая проблема, я новичок в питоне и торнадо.