Несколько API от разных поставщиков на одной странице
У меня есть ASP.net 1 страница, которая запрашивает поставщика API, который работает так, как ожидалось, но я хочу добавить API от других поставщиков на той же странице. Как я могу достичь этого в VB.NET-что?
Что я уже пробовал:
Приведенный ниже код работает только с одним API:
Dim doc As New XmlDocument() doc.Load("http://api.test.com/1.0/products.xml;q=paris?token=SAD345A8718524374ZXZXCVMSHWEU8") Dim nsManager As New XmlNamespaceManager(doc.NameTable) nsManager.AddNamespace("ns1", "urn:com:test:pf:model:xml:output") nsManager.AddNamespace("ns2", "urn:com:test:pf:model:xml:common") Dim nodes As XmlNodeList = doc.SelectNodes("//ns1:products/ns1:product", nsManager) Dim dataSource As IEnumerable dataSource = From node As XmlNode in nodes Select Name = node.SelectSingleNode("ns2:name", nsManager).InnerText, _ Description = node.SelectSingleNode("ns2:description", nsManager).InnerText, _ Image = node.SelectSingleNode("ns2:productImage", nsManager).InnerText,
Richard Deeming
То, как вы взаимодействуете с API, будет отличаться в зависимости от вызываемого API. Нет "один размер подходит всем" решение для вызова API.
hm9
Проблема у меня не в том, чтобы получить данные. Данные можно просмотреть, но они не могут быть привязаны к ретранслятору должным образом, он всегда связывает последний, поэтому он перезаписывает первый. Таким образом, в приведенном ниже коде оба источника данных 1 и 2 показывают данные, но не одновременно. если я меняю порядок местами, он всегда показывает второй, так что проблема заключается в привязке. Нужно найти способ добавить оба источника данных 1 и 2 к другому элементу, а затем привязать этот элемент ?
Dim dataSource1 как IEnumerable
Dim dataSource2 как IEnumerable
rpMyRepeater.Источник данных = datasource1
rpMyRepeater.Источник данных = datasource2
rpMyRepeater.Привязку()
hm9
Приведенный выше пример показывает, как я взаимодействую с одним API. Есть ли способ добавить еще один API к приведенному выше коду?
ZurdoDev
Напишите код, чтобы сделать еще один. Почему ты застрял?
j snooze
Являются ли результаты каждого макета ответа точно такими же от каждого API? В противном случае вам, возможно, придется создать класс со свойствами нужных вам значений и заполнить список ienumaerable из результатов каждого api.
Поскольку мы ничего не знаем об API, вы называете его трудным, чтобы ответить на этот вопрос.
hm9
Да, результаты должны быть одинаковыми. Поэтому я просто хочу знать, можно ли добавить еще один API, подобный приведенному ниже, чтобы я мог запрашивать оба, а не только один
http://api.test.com/1.0/products.xml;q=paris?token=SAD345A8718524374ZXZXCVMSHWEU8"
hm9
Хорошо я попробовал этот метод загрузив 3 API таким образом:
Dim doc как новый XmlDocument()
dim doc1 = ("AP1")
dim doc2 = ("AP2")
dim doc3 = ("AP3")
doc.Load(doc1)
doc.Load(doc2)
doc.Load(doc3)
Но это всегда загружает последний API3 и игнорирует первые 2. Есть ли способ загрузить все три, а не только третий?