hm9 Ответов: 1

Несколько 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. Есть ли способ загрузить все три, а не только третий?

1 Ответов

Рейтинг:
1

hm9

Ok I tried this method by loading 3 APIs in this way:


Dim doc As New XmlDocument() 
dim doc1 = ("AP1")
dim doc2 = ("AP2")
dim doc3 = ("AP3")


doc.Load(doc1)
doc.Load(doc2)
doc.Load(doc3)

But this always load the last one API3 and ignores the first 2. Is there a way to get to load all three instead of only the third one?