newsapi 2.0.0 newsapi: ^2.0.0 copied to clipboard
Use the NewsApi v2 service in Dart. The library has a clear return structure and an easy-to-use API.
NewsApi #
Use NewsApi service with Dart
Install #
dependencies:
newsapi: ^1.0.9
Example #
var newsApi = NewsApi(
// dioOptions: dioOptions,
// interceptors: interceptors,
debugLog: true,
apiKey: 'foo',
);
newsApi.apiKey = 'Change_your_api_key';
ArticleResponse topHeadlines = await newsApi.topHeadlines(
// country: country,
// category: category,
// sources: sources,
// q: q,
language: 'en',
// pageSize: pageSize,
// page: page,
);
print(topHeadlines);
ArticleResponse everything = await newsApi.everything(
q: 'flutter',
// qInTitle: qInTitle,
// sources: sources,
// domains: domains,
// excludeDomains: excludeDomains,
// from: from, // support DateTime or String
// to: to, // support DateTime or String
// language: language,
// sortBy: sortBy,
// pageSize: pageSize,
// page: page,
);
print(everything);
SourceResponse sources = await newsApi.sources(
// category: category,
// language: language,
// country: country,
);
print(sources);
Response Structure #
class BaseResponse extends Equatable {
String code;
String message;
@JsonKey(
fromJson: statusFromJson,
toJson: statusToJson,
)
bool status;
int totalResults;
}
class ArticleResponse extends BaseResponse {
List<Article> articles;
}
class Article extends Equatable {
Source source;
String author;
String content;
String description;
DateTime publishedAt;
String title;
String url;
String urlToImage;
}
class SourceResponse extends BaseResponse {
List<Source> sources;
}
class Source extends Equatable {
String category;
String country;
String description;
String id;
String language;
String name;
String url;
}
Start Test #
API_KEY=YOUR_API_KEY pub run test