Coder Social home page Coder Social logo

leoafarias / pub_api_client Goto Github PK

View Code? Open in Web Editor NEW
92.0 2.0 20.0 271 KB

The most complete & unofficial API Client for Dart Pub.dev

Home Page: https://pub.dev/packages/pub_api_client

License: MIT License

Dart 100.00%
pub api dart flutter

pub_api_client's Introduction

drawing

Pub Version Pub Likes Pub Points Coverage Status MIT Licence

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

A simple usage example:

import 'package:pub_api_client/pub_api_client.dart';

main() {
  final client =  PubClient();
}

API

Packages

Get Package Info

Retrieves all available information about an specific package.

final package =  await client.packageInfo('pkg_name');

Get Package Score

Returns the following score information about a package.

  • Pub Points
  • Popularity
  • Likes
final score =  await client.packageScore('pkg_name');

Get Package Metrics

The method 'packageMetrics' returns the package 'score' together with a 'scorecard'

final metrics =  await client.packageMetrics('pkg_name');

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');

Get Package Version Info

The method packageVersionInfo returns information about a version of a specific package.

final version =  await client.packageVersionInfo('pkg_name', 'version');

Get Package Publisher

The method packagePublisher returns the publisherId of a specific package.

final publisher =  await client.packagePublisher('pkg_name');
// publisher.publisherId

Get Package Options

The method packageOptions returns options of a package.

final options =  await client.packageOptions('pkg_name');

Get Documentation

The method documentation returns all versions and their respective documentation status.

final documentation =  await client.documentation('pkg_name');

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();

Package Like Status

Returns like status of a package.

final like =  await client.likePackageStatus();

Like a Package

Likes a package. The method returns packageLike payload

final like =  await client.likePackage('pkg_name');

Unlike a Package

Unlikes a package. The method returns packageLike payload

final like =  await client.unlikePackage('pkg_name');

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)

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)

Paging Search Results

You are able to page search results.

final results =  await client.search('query');
final nextResults = await results.nextPage();

print(nextResults.packages)

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)

Utilities

Flutter Favorites

Returns all Flutter favorites on pub.dev

final results = await client.fetchFlutterFavorites();

Google Packages

Returns all official Google packages. This will be a large payload with hundreds of packages.

final results = await client.fetchGooglePackages();

Publisher Packages

Returns all packages for a specific publisher

final results = await client.fetchPublisherPackages();

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.