webfaction_api 0.9.0

  • README.md
  • Installing
  • Versions
  • 55

Build Status

webfaction_api #

A dart client for webfaction's RPC API.

Official reference: https://docs.webfaction.com/xmlrpc-api/

Webfaction info: https://www.webfaction.com/?aid=50399 (affiliate link)

Installation #

  1. pubspec.yaml:
  sdk: '>1.24.0 <3.0.0'

  webfaction_api: '>=0.9.0'
  1. pub get

Documentation #

~/dart-webfaction-api/ $ dartdoc
~/dart-webfaction-api/ $ pub serve doc/api

Example #

import 'package:webfaction_api/client.dart';
import 'package:webfaction_api/response.dart';

main() async {
  var client = new Client('username', 'password', 'SomeServer543');
  await client.login();

  // or

  client.login().then((response) async {
    List<Map> rawResponse = await client.app.list();

    // Response objects imported from `response.dart`
    List<App> appListManuallyCreated = await client.app.list()
        .then((response) => response.map((data) => new App.fromMap(data)));

    App newApp = await client.app
        .create('MyNewApp', 'django-2.0.5_mod_wsgi-4.6.4_python-3.6')
        .then((response) => new App.fromMap(response));

    // Or pass objects around
    App app = new App('MyNewApp', 'django-2.0.5_mod_wsgi-4.6.4_python-3.6');
        .then((_) => client.app.deleteFromInstance(app));

Usage Summary #

  1. Import client.dart for the client and API classes. Import response.dart to use the response objects and related helper function
import 'package:webfaction_api/client.dart';
import 'package:webfaction_api/response.dart';
  1. Instantiate a client with your webfaction username, password, and server name
var client = new Client('username', 'password, 'Server153');
  1. Login. The session ID is stored in the client so there is no need to pass it to subsequent calls. According to webfaction, the session ID remains valid for one hour
  1. Call api methods.

Method location #

The webfaction API is large and flat. In order to tidy things up and make code completion more helpful, the methods were grouped and scoped to class properties corresponding to the section or subsection they appear under on the API reference page.

For example, methods under Applications are found on client.app.<method>

A couple slight deviations from this convention are as follows:

  • Databases: client.db
  • Email -> Addresses: client.email
  • Email -> Mailboxes: client.mailbox
  • Miscellaneous: client.misc
  • General -> Login: client.login(...)

Method naming #

The method names use camel case instead of snake case, as per dart style recommendations, and the 'section' is removed from the name:

create_db becomes client.db.create

create_db_user becomes client.db.createUser

API response objects #

A collection of dumb objects have been provided that represent API input or output.

Most methods have a corresponding <methodName>FromInstance or FromInstances method that can be called with objects instead of manually passing individual parameters.

Objects intended to be used with API methods that return data have a .fromMap factory constructor that can be used to instanciate directly with the response data.

0.9.0 #

  • Dart 2.0 support

0.8.3 #

  • Bugfix: API's were not being set properly

0.8.2 #

  • Removed createList helper

0.8.1 #

  • Isolated createList to its own package to allow compatibility with flutter

0.8.0 #

  • Complete API support
  • Response objects include to use with the API

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  webfaction_api: ^0.9.0

2. Install it

You can install packages from the command line:

with pub:

$ pub get

with Flutter:

$ flutter pub get

Alternatively, your editor might support pub get or flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:webfaction_api/client.dart';
import 'package:webfaction_api/response.dart';
Version Uploaded Documentation Archive
1.0.1 Dec 22, 2018 Go to the documentation of webfaction_api 1.0.1 Download webfaction_api 1.0.1 archive
1.0.0 Aug 4, 2018 Go to the documentation of webfaction_api 1.0.0 Download webfaction_api 1.0.0 archive
0.9.2 Aug 4, 2018 Go to the documentation of webfaction_api 0.9.2 Download webfaction_api 0.9.2 archive
0.9.1 Aug 3, 2018 Go to the documentation of webfaction_api 0.9.1 Download webfaction_api 0.9.1 archive
0.9.0 Jul 21, 2018 Go to the documentation of webfaction_api 0.9.0 Download webfaction_api 0.9.0 archive
0.8.3 Jun 10, 2018 Go to the documentation of webfaction_api 0.8.3 Download webfaction_api 0.8.3 archive
0.8.2 Jun 10, 2018 Go to the documentation of webfaction_api 0.8.2 Download webfaction_api 0.8.2 archive
0.8.1 Jun 10, 2018 Go to the documentation of webfaction_api 0.8.1 Download webfaction_api 0.8.1 archive
0.8.0 May 13, 2018 Go to the documentation of webfaction_api 0.8.0 Download webfaction_api 0.8.0 archive
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on May 8, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.3.0
  • pana: 0.12.15


Detected platforms: Flutter, web, other

No platform restriction found in libraries.

Health suggestions

Format lib/src/data/website.dart.

Run dartfmt to format lib/src/data/website.dart.

Maintenance suggestions

The package description is too short. (-20 points)

Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.

Maintain an example.

None of the files in the package's example/ directory matches known example patterns.

Common filename patterns include main.dart, example.dart, and webfaction_api.dart. Packages with multiple examples should provide example/README.md.

For more information see the pub package layout conventions.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.24.0 < 3.0.0
xml_rpc ^0.2.1 0.2.2
Transitive dependencies
async 2.2.0
charcode 1.1.2
collection 1.14.11
convert 2.1.1
http 0.11.3+17 0.12.0+2
http_parser 3.1.3
meta 1.1.7
path 1.6.2
petitparser 2.2.1
source_span 1.5.5
string_scanner 1.0.4
term_glyph 1.1.0
typed_data 1.1.6
xml 3.4.1
Dev dependencies
test >=0.12.0