Last updated:
0 purchases
pub api client
An unofficial API client for Pub.dev #
Aims to be the most complete and stable pub.dev API client. If any particular endpoint is missing please open an issue.
Table of contents #
Usage
API
Packages
Details
Score
Metrics
Versions
Version Info
Publisher
Options
Documentation
Search Packages
Paging Search Results
Like Packages
Utilities
Flutter Favorites
Google Packages
Publisher Packages
Usage #
A simple usage example:
import 'package:pub_api_client/pub_api_client.dart';
main() {
final client = PubClient();
}
copied to clipboard
API #
Packages #
Get Package Info
Retrieves all available information about an specific package.
final package = await client.packageInfo('pkg_name');
copied to clipboard
Get Package Score
Returns the following score information about a package.
Pub Points
Popularity
Likes
final score = await client.packageScore('pkg_name');
copied to clipboard
Get Package Metrics
The method 'packageMetrics' returns the package 'score' together with a 'scorecard'
final metrics = await client.packageMetrics('pkg_name');
copied to clipboard
Get Package Versions
The method 'packageVersions' also returns the versions. However if all you need is versions use this method since it's lighter.
final versions = await client.packageVersions('pkg_name');
copied to clipboard
Get Package Version Info
The method packageVersionInfo returns information about a version of a specific package.
final version = await client.packageVersionInfo('pkg_name', 'version');
copied to clipboard
Get Package Publisher
The method packagePublisher returns the publisherId of a specific package.
final publisher = await client.packagePublisher('pkg_name');
// publisher.publisherId
copied to clipboard
Get Package Options
The method packageOptions returns options of a package.
final options = await client.packageOptions('pkg_name');
copied to clipboard
Get Documentation
The method documentation returns all versions and their respective documentation status.
final documentation = await client.documentation('pkg_name');
copied to clipboard
Like Packages #
All requests for likes require pub.dev authentication.
List liked packages
Displays list of of packages you have liked. Returns list of packageLikes
final likes = await client.listPackageLikes();
copied to clipboard
Package Like Status
Returns like status of a package.
final like = await client.likePackageStatus();
copied to clipboard
Like a Package
Likes a package. The method returns packageLike payload
final like = await client.likePackage('pkg_name');
copied to clipboard
Unlike a Package
Unlikes a package. The method returns packageLike payload
final like = await client.unlikePackage('pkg_name');
copied to clipboard
Search Packages #
Search for packages on pub.dev. Will return the packages that match the query. You can filter the search with tags.
final results = await client.search(
'query',
tags: [
PackageTag.publisher('publisher_id'),
PackageTag.dependency('dependency_name'),
'another:tag',
],
topics:['topic_1', 'topic_2'],
);
// Returns the packages that match the query
print(results.packages)
copied to clipboard
Sorting search results
You are able to sort search results by the following:
Top
Search score should be a weighted value of [text], [popularity], [points] and [like], ordered decreasing.
Text
Search score should depend only on text match similarity, ordered decreasing.
Created
Search order should be in decreasing last package creation time.
Updated
Search order should be in decreasing last package updated time.
Popularity
Search order should be in decreasing popularity score.
Like
Search order should be in decreasing like count.
Points
Search order should be in decreasing pub points.
final results = await client.search('query', sort: SearchOrder.updated);
print(results.packages)
copied to clipboard
Paging Search Results
You are able to page search results.
final results = await client.search('query');
final nextResults = await results.nextPage();
print(nextResults.packages)
copied to clipboard
If you want to retrieve a specific result page you can call the page parameter directly.
final results = await client.search('query',page:2);
print(results.packages)
copied to clipboard
Utilities #
Flutter Favorites #
Returns all Flutter favorites on pub.dev
final results = await client.fetchFlutterFavorites();
copied to clipboard
Google Packages #
Returns all official Google packages. This will be a large payload with hundreds of packages.
final results = await client.fetchGooglePackages();
copied to clipboard
Publisher Packages #
Returns all packages for a specific publisher
final results = await client.fetchPublisherPackages();
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.