ОК Я программирую способ взаимодействия с Grooveshark (http://grooveshark.com). Сейчас у меня есть класс Grooveshark и несколько методов, один получает сеанс с сервером, другой получает токен, основанный на сеансе, а другой используется для создания вызовов api на сервере (и другие методы используют это). Сейчас я использую это как так .... Примечание использует витую и tidefer в витуюРазработка интерфейса для веб-сайтов api
g = Grooveshark()
d = g.get_session()
d.addCallback(lambda x: g.get_token())
## and then something like.... ##
g.search("Song")
Я нахожу это unpythonic и уродливое чувство даже после инициализации класса вы должны назвать два метода первого или еще другие методы не будет работать. Чтобы решить эту проблему, я пытаюсь получить ее так, чтобы метод, который создает вызовы api, заботится о сеансе и токене. В настоящее время эти два метода (методы сеанса и токена) устанавливают переменные класса и ничего не возвращают (ну нет). Поэтому мой вопрос: существует ли общий дизайн, используемый при взаимодействии с сайтами, требующими токенов и сеансов? Кроме того, маркер и сеанс извлекаются с сервера, так что я не могу иметь их запустить в методе инициализации (как это будет либо блок или не может быть сделано до того, как вызов апи сделан)
Я думаю, что название вашего вопроса немного вводит в заблуждение. Я прочитал его и подумал, что вы разрабатываете пользовательский интерфейс для существующего api (что-то вроде api.jquery.com), а не для создания API. –