问题描述
我已成功访问页面上的静态API数据.我现在正在尝试访问dynami API.我已经阅读了一些有关访问动态API的文档,但是API提供程序提供的文档与在线资源不同.我不确定要在现有代码中进行哪些更改才能访问动态API数据.这是API提供程序的链接- https://drive.google.com/file/d/0B2HH3TWuI4Fdc3RfNGVocy1pT0tuSXlLdHlPMUZSRG5GTWJV/view .我也对文档中提到的contracts
和getter
,setter
感到困惑.我应该如何以及在哪里使用它们?
I have been successful in accessing static API data on the page. I am now trying to access dynami API. I have read some documentation to access the dynamic API, but the documentation by API provider is different from online resources. I am not sure what changes I have to make in existing code to access dynamic API data. Here is the link from API provider - https://drive.google.com/file/d/0B2HH3TWuI4Fdc3RfNGVocy1pT0tuSXlLdHlPMUZSRG5GTWJV/view. I am also confused about the contracts
and getter
, setter
mentioned in the documentation. How and where should I use them?
这是我的代码,用于从静态json API访问Name
,Line
和MoneyLine
数据- https://sportsbook.draftkings.com/api/odds/v1/leagues/3/offers/gamelines.json
Here is my code for accessing Name
, Line
and MoneyLine
data from static json API - https://sportsbook.draftkings.com/api/odds/v1/leagues/3/offers/gamelines.json
如何使用文档并访问实时API数据?
How can I make use of the documentation and access live API data?
api.component.ts代码
api.component.ts code
import {Component} from '@angular/core';
import {HttpClient} from '@angular/common/http'
import {forkJoin} from 'rxjs';
import {map} from 'rxjs/operators';
@Component({
selector: 'app-mlb-api',
templateUrl: './mlb-api.component.html',
styleUrls: ['./mlb-api.component.css']
})
export class MlbApiComponent {
//allhomeTeamName;
//allawayTeamName;
allline;
allOdds;
allName;
all: Array<{line: string, name: string,oddsAmerican:string}> = [];
firstLinePerGame: Array<string>;
oddsAmericans: Array<string>;
constructor(private http: HttpClient) {}
ngOnInit() {
const character = this.http.get('https://sportsbook.draftkings.com/api/odds/v1/leagues/3/offers/gamelines.json').pipe(map((re: any) => re.events));
const characterHomeworld = this.http.get('https://www.fantasylabs.com/api/sportevents/3/2019_06_17');
this.firstLinePerGame = new Array<string>();
//this.oddsAmericans = new Array<string>();
forkJoin([character, characterHomeworld]).subscribe(([draftkingsResp, fantasylabsResp]) => {
//this.allhomeTeamName = draftkingsResp.map(r => r.homeTeamName);
//this.allawayTeamName = draftkingsResp.map(r => r.awayTeamName);
this.allName = draftkingsResp.map(r => r.name);
this.allline = draftkingsResp.map(r=>r.offers).flat().map(r => r.outcomes).flat().map(o => o.line);
this.allline = this.allline.filter(l => !!l);
this.allOdds = draftkingsResp.map(r => r.offers).flat().map(r=>r.outcomes[0]).flat().map(o=>o.oddsAmerican);
this.createAllArray();
});
}
createAllArray(): void {
for (let i = 0; i < this.allline.length; i++) {
let item = {
line: this.allline[i],
//awayTeam: this.allawayTeamName[i],
//homeTeam: this.allhomeTeamName[i],
name:this.allName[i],
oddsAmerican: this.allOdds[i]
}
this.all.push(item);
}
}
}
api.component.html代码
api.component.html code
<table class="table table-striped table-condensed table-hover">
<thead>
<tr>
<!-- <th class="awayTeamName">awayTeamName <a ng-click="sort_by('awayTeamName')"><i class="icon-sort"></i></a></th>
<th class="field3">homeTeam <a ng-click="sort_by('HomeTeam')"><i class="icon-sort"></i></a></th>
--> <th class="field3">Name <a ng-click="sort_by('Name')"><i class="icon-sort"></i></a></th>
<th class="line">Line <a ng-click="sort_by('line')"><i class="icon-sort"></i></a></th>
<th class="field3">Money Line <a ng-click="sort_by('oddsAmericans')"><i class="icon-sort"></i></a></th>
</tr>
</thead>
<tbody>
<ng-container *ngFor="let item of all| paginate: { itemsPerPage: 5, currentPage: p }; let i = index">
<tr>
<td>{{item.name }}</td>
<!-- <td>{{item.awayTeam}}</td>
<td>{{item.homeTeam}} </td> -->
<td>{{item.line }}</td>
<td>{{item.oddsAmerican}}</td>
</tr>
</ng-container>
</tbody>
</table>
<pagination-controls (pageChange)="p = $event"></pagination-controls>
推荐答案
我已根据您的要求更新了代码.我已经利用可观察对象在链接 https://stackblitz.com/edit/stackoverflow-24-06-2019-ewzpst?file=src/app/app.component.html
I have updated the code according to your requirement. I have made use of the observables to fetch the live data here in the link https://stackblitz.com/edit/stackoverflow-24-06-2019-ewzpst?file=src/app/app.component.html
这篇关于动态REST API调用角度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!