Javascript 通过ID访问API资源

Javascript 通过ID访问API资源,javascript,jquery,ajax,rest,api,Javascript,Jquery,Ajax,Rest,Api,假设这个api.football-data.org/v1/competitions包含以下内容 { "_links": { "teams": { "href": "http://api.football-data.org/v1/competitions/444/teams" } }, "id": 444, "caption": "Campeonato Brasileiro da Série A", "league":

假设这个api.football-data.org/v1/competitions包含以下内容

{
    "_links": {
      "teams": {
        "href": "http://api.football-data.org/v1/competitions/444/teams"
      }
    },
    "id": 444,
    "caption": "Campeonato Brasileiro da Série A",
    "league": "BSA"
  },
{
    "_links": {
      "teams": {
        "href": "http://api.football-data.org/v1/competitions/445/teams"
      }
    },
    "id": 445,
    "caption": "Premier League 2017/18",
    "league": "PL"
  }
访问特定团队的最佳方式是什么?我是这样做的,很管用,但我觉得不太整洁

HTML

JavaScript

$("#team").change(function(){
    var id = $("#team").val();
    getTeam(id);

});

function getTeam(id){

        $.ajax({
            url: 'http://api.football-data.org/v1/competitions/'+id+'/team',
            type: 'GET',
            dataType: 'json',
            success: function(data) {
                var team= '';
                $.each(data, function(k, v) {
                    team+= '<tr><td>' + v.name+ '</td></tr>';

                });
                $("#team").html(team);

            }
        });
    }

您的解决方案是正确的,但是您可以使用从API返回的URL。我认为这个API是根据Richardson成熟度模型创建的。更多信息如下:。 api足球是在3级-超媒体控制-因为api告诉我们下一步可以做什么-得到球队,得到球员

因此,它可以为您的应用程序带来一些好处:如果api足球更改一些URL,您的应用程序将不会中断

如果需要,您可以更改解决方案:

变量apiKey='7b35712f29da4dc58a538320e57c12cc'; $function{ 比赛; $'change'函数{ var urlTeam=$competitions.findoption:selected.attr'data-href'; GetteamUrl团队; }; } 功能竞赛{ $.ajax{ 网址:'http://api.football-data.org/v1/competitions/', 标题:{ X-Auth-Token:apiKey }, 键入:“GET”, 数据类型:“json”, 成功:函数数据{ $.eachdata,函数k,v{ $'competitions'。追加+v.caption+; }; } }; } 函数getTeamurl { $.ajax{ url:url, 标题:{ X-Auth-Token:apiKey }, 键入:“GET”, 数据类型:“json”, 成功:函数数据{ var团队=; $.eachdata.teams,函数k,v{ 团队+=+v.name+; }; $teams.htmltam; } }; } 选择比赛: 选择 团队
您的解决方案是正确的,但是您可以使用从API返回的URL。我认为这个API是根据Richardson成熟度模型创建的。更多信息如下:。 api足球是在3级-超媒体控制-因为api告诉我们下一步可以做什么-得到球队,得到球员

因此,它可以为您的应用程序带来一些好处:如果api足球更改一些URL,您的应用程序将不会中断

如果需要,您可以更改解决方案:

变量apiKey='7b35712f29da4dc58a538320e57c12cc'; $function{ 比赛; $'change'函数{ var urlTeam=$competitions.findoption:selected.attr'data-href'; GetteamUrl团队; }; } 功能竞赛{ $.ajax{ 网址:'http://api.football-data.org/v1/competitions/', 标题:{ X-Auth-Token:apiKey }, 键入:“GET”, 数据类型:“json”, 成功:函数数据{ $.eachdata,函数k,v{ $'competitions'。追加+v.caption+; }; } }; } 函数getTeamurl { $.ajax{ url:url, 标题:{ X-Auth-Token:apiKey }, 键入:“GET”, 数据类型:“json”, 成功:函数数据{ var团队=; $.eachdata.teams,函数k,v{ 团队+=+v.name+; }; $teams.htmltam; } }; } 选择比赛: 选择 团队
是什么让你觉得它不太整洁?我认为这是完全可以接受的。你是否在寻求对客户的更多控制,以获得包括团队在内的竞争?如果是这样,那么graphql可能比RESTAPI更适合您。是什么让您觉得它不是很整洁?我认为这是完全可以接受的。你是否在寻求对客户的更多控制,以获得包括团队在内的竞争?如果是这样,那么graphql可能比RESTAPI更适合您。
$("#team").change(function(){
    var id = $("#team").val();
    getTeam(id);

});

function getTeam(id){

        $.ajax({
            url: 'http://api.football-data.org/v1/competitions/'+id+'/team',
            type: 'GET',
            dataType: 'json',
            success: function(data) {
                var team= '';
                $.each(data, function(k, v) {
                    team+= '<tr><td>' + v.name+ '</td></tr>';

                });
                $("#team").html(team);

            }
        });
    }