【问题标题】:How to include 3rd party API in MVC 5 - Riot Games如何在 MVC 5 中包含 3rd 方 API - Riot Games
【发布时间】:2014-08-16 09:14:09
【问题描述】:

我正在制作一个网站,我想尝试通过开发者 API 提取一些用户数据。

我以前从未这样做过,我不确定如何真正寻找解决方案。我只知道我认为我应该使用 AJAX,并且我需要确保它是跨域兼容的。

我正在为其制作统计页面的游戏是英雄联盟,他们有一个 API 可以以 JSON 格式提取他们的信息:https://developer.riotgames.com/docs/getting-started

他们的示例使用了这个,它确实:一个 cURL 请求以 JSON 格式加载 RiotSchmick 的基本召唤者对象。

curl --request GET 'https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/RiotSchmick?api_key=<key>' --include

我想知道是否有人可以向我展示一种非常简单的方法来将其包含在我的 MVC 项目中,例如一个简单的 View,其中包含一个 div,它将使用 RiotSchmick 的用户数据进行更新,然后是执行此魔术的 AJAX/JSON 调用。你可以忽略<key>,因为我假设我只是将我的钥匙插入那个位置。

感谢大家的帮助!

【问题讨论】:

    标签: ajax asp.net-mvc json curl


    【解决方案1】:

    对于开头的asp.net json from urljquery json parse 关键字会有所帮助。

    我在这个 API 之前就开始了,但我没有继续。

    当然,您只能通过 webclient 等在您的控制器上下载字符串并在您的视图上解析它的 javascript/framework。

    使用你自己的;控制器名称、模型命名空间和 API 密钥

    型号

    Public Class SummonerModel
    
     Public Property ID As Integer
     Public Property Name As String
     Public Property ProfileIconId As Integer
     Public Property SummonerLevel As Integer
     Public Property RevisionDate As String
     Public Property ErrorMessage As String
    
    End Class
    

    查看

    <%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(Of MP.Web.Models.Site.SummonerModel)" %>
    
    <div id="SummonerResult">
    <%If Model.ErrorMessage = "" Then%>
    
    ID : <%=Model.ID%><br />
    Name : <%=Model.Name%><br />
    Profile Icon Id : <%=Model.ProfileIconId%><br />
    Revision Date : <%=Model.RevisionDate%><br />
    SummonerLevel : <%=Model.SummonerLevel%><br />
    
    <%Else%>
    
    Error / <%=Model.ErrorMessage%>
    
    <%End If%>
    
    </div>
    

    **控制器**

    Function GetSummoner(name As String) As PartialViewResult
    
        Dim model = New SummonerModel
    
        Dim url = "https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/" & name & "?api_key=<key>"
    
        Using webClient = New System.Net.WebClient()
    
            Try
    
                Dim json = webClient.DownloadString(url)
    
                Dim dic = (New JavaScriptSerializer()).Deserialize(Of Dictionary(Of String, SummonerModel))(json)
    
                model = dic.FirstOrDefault.Value
    
            Catch ex As Exception
    
                model.ErrorMessage = ex.Message
    
            End Try
    
        End Using
    
    
        Return PartialView(model)
    
    End Function
    

    脚本

    setInterval(function () { $("#SummonerResult").load("/RiotGamesApi/GetSummoner?name=RiotSchmick") }, 1000);
    

    【讨论】:

    • 非常感谢!我会在接下来一两天的某个时候看看这个,让你知道它是怎么回事。 :)
    • @Austin 不客气,这是一个工作示例,不要忘记更改名称。您可以使用相同的方式集成其他 api 方法。得到它并解析它。祝你好运
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多