Введение
Я разрабатываю приложение реагирования, которое должно взаимодействовать с API отдыха.В настоящее время полный API еще не полностью реализован, поэтому я делаю макеты и чтобы не тратить впустую код, я добавляю слой абстракции между макетом / API и приложением.
Текущая ситуация
В настоящее время у меня есть классы, представляющие компоненты (например, «пользователь») в API.Запрос на получение URL obj1/obj2/ob3/
переводится в javascript как server.get("obj1").get("obj2").get("obj3").fetch(...args).then(onsucces,onerror)
.fetch
вернул бы обещание.другие методы
Вопрос
Мой вопрос состоит из 2 частей.Во-первых, есть ли способ очистить эту часть, .get("obj1").get("obj2").get("obj3")
.(Я не думаю, что Reaction поддерживает прокси).
Во-вторых, если у вас есть рекурсивные запросы
server.get("user").get(<id>).fetch(
(user)=>{
update_ui(user);
user.books.fetch(
(books)=>{
update_ui(books);
},(error)=>{}
)
},(error)=>{}
)
они могут быть ужасно быстрыми, есть ли способ, аналогичный .then(...).then(...)
(дляобещает) сгладить их или выполнить что-то по-другому, что привело бы к лучшему коду.
Что get().get()...fetch()
делает
, то получит построит путь, из которого операции выборки, ... будутвыполняется для фактического API, это будет URL для макета, это может быть жестко закодированный словарь.
, например, get("users").get(<userid>)
, будет соответствовать объекту вида
{
path:"users.<userid>" //(or any other seperator)
fetch: function(...args) //GET specified in the api
push: null // api doesn't specify a POST request for this url
...
}
перевод HTTP-запроса в javascript выглядит следующим образом:
- GET в
fetch
- POST в
push
- PUT в
set
- PATCH до
update
- DELETE до
pop
реализация этих методов (fetch
) будет тогда использовать path
иуказанные аргументы для получения, публикации, ... данных.