Какая наилучшая реализация REST при использовании обработчиков запросов торнадо

Я хотел бы определить 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, az, AZ, -] +) / music ", MusicHandler), , но я застрял на реализации MusicHandler, который должен знать, если объект, указанный в uri в первую очередь поддерживает музыку, то есть как защититься от звонков вроде

mysite.com/LOCATION_ID/music

Где местоположения не связаны с музыкой.

Лучшее исправление для изменения api с включением введите:

mysite.com/users/USER_ID/music или

mysite.com/playlists/PLAYLIST_ID/music

, а затем отдельный обработчик для каждого:

/ users / ([ 0-9, az, AZ, -] +) / music ", UserMusicHandler),

/ playlists / ([0-9, az, AZ, -] +) / music", PlaylistMusicHandler)

Это не Это кажется неправильным, но я не совсем понимаю, как это сделать.Я уверен, что это простая проблема, я новичок в python и tornado.

5
задан will-hart 7 June 2013 в 15:10
поделиться