wallabag-api

Client API library for Wallabag

9 releases

0.4.3 Sep 2, 2023
0.4.2 Mar 19, 2023
0.4.1 Aug 18, 2021
0.4.0 Apr 21, 2021
0.1.1 Dec 13, 2018
Download history 4/week @ 2024-06-24 17/week @ 2024-07-01 75/week @ 2024-07-29 3/week @ 2024-08-12 2/week @ 2024-08-26 16/week @ 2024-09-02 1/week @ 2024-09-09 19/week @ 2024-09-23 42/week @ 2024-09-30

64 downloads per month
Used in 2 crates (via wallabag-backend)

MIT/Apache

74KB
1.5K SLoC

Wallabag client API

wallabag-api crates.io wallabag-api docs.rs maintenance-status: passively-maintained

Provides types and functions for interacting with a Wallabag server API.

About

See the documentation for usage information.

supported API endpoints:

All API endpoints are implemented except for the /api/*/list{,s}. I don't plan on implementing support for those unless there is a good reason to.

  • DELETE /api/annotations/{annotation}.{_format} Removes an annotation.
  • PUT /api/annotations/{annotation}.{_format} Updates an annotation.
  • GET /api/annotations/{entry}.{_format} Retrieve annotations for an entry.
  • POST /api/annotations/{entry}.{_format} Creates a new annotation.
  • GET /api/entries.{_format} Retrieve all entries. It could be filtered by many options.
  • POST /api/entries.{_format} Create an entry.
  • GET /api/entries/exists.{_format} Check if an entry exist by url.
  • DELETE /api/entries/list.{_format} Handles an entries list and delete URL.
  • POST /api/entries/lists.{_format} Handles an entries list and create URL.
  • DELETE /api/entries/tags/list.{_format} Handles an entries list delete tags from them.
  • POST /api/entries/tags/lists.{_format} Handles an entries list and add tags to them.
  • DELETE /api/entries/{entry}.{_format} Delete permanently an entry.
  • GET /api/entries/{entry}.{_format} Retrieve a single entry.
  • PATCH /api/entries/{entry}.{_format} Change several properties of an entry.
  • GET /api/entries/{entry}/export.{_format} Retrieve a single entry as a predefined format.
  • PATCH /api/entries/{entry}/reload.{_format} Reload an entry.
  • GET /api/entries/{entry}/tags.{_format} Retrieve all tags for an entry.
  • POST /api/entries/{entry}/tags.{_format} Add one or more tags to an entry.
  • DELETE /api/entries/{entry}/tags/{tag}.{_format} Permanently remove one tag for an entry.
  • DELETE /api/tag/label.{_format} Permanently remove one tag from every entry by passing the Tag label.
  • GET /api/tags.{_format} Retrieve all tags.
  • DELETE /api/tags/label.{_format} Permanently remove some tags from every entry.
  • DELETE /api/tags/{tag}.{_format} Permanently remove one tag from every entry by passing the Tag ID.
  • GET /api/user.{_format} Retrieve current logged in user informations.
  • PUT /api/user.{_format} Register an user and create a client.
  • GET /api/version.{_format} Retrieve version number.

Examples

A few small examples are provided. To use these, the following environment variables must be set (for authentication). For example:

export WALLABAG_CLIENT_ID="client_id"
export WALLABAG_CLIENT_SECRET="client_secret"
export WALLABAG_USERNAME="username"
export WALLABAG_PASSWORD="password"
export WALLABAG_URL="https://framabag.org" # must not end with trailing slash

The examples include:

  • check_exists: check if there is an entry corresponding to the url provided.
  • example_sandbox: a bunch of (mostly) commented out small examples, used for manual testing... have fun experimenting!
  • get_entries: simply retrieve and debug print all entries. See the source code for filtering options.
  • get_entries_page: example fetching a single page of entries without auto handling pagination.
  • save_url: save a url to the server, printing the created entry on success.

Contributing

Please send your comments, bug reports, feature requests, and patches to this public mailing list: ~swalladge/public-inbox@lists.sr.ht (archives).

License

Licensed under either of

  • Apache License, Version 2.0
  • MIT license

at your option.

Dependencies

~8–12MB
~216K SLoC