jaguar_retrofit 2.8.5 copy "jaguar_retrofit: ^2.8.5" to clipboard
jaguar_retrofit: ^2.8.5 copied to clipboard

outdated

Retrofit inspired declarative HTTP client for Dart.

jaguar_retrofit #

An HTTP client API generator inspired by Retrofit for Dart.

Install #

dependencies:
  jaguar_retrofit:

dev_dependencies:
  jaguar_retrofit_gen:
  build_runner:

Defining and ApiClient

/// Example showing how to define an [ApiClient]
/// Example showing how to define an [ApiClient]
@GenApiClient(path: "user")
class UserApi extends ApiClient with _$UserApiClient {
  final resty.Route base;

  UserApi(this.base);

  @GetReq(path: ":id")
  Future<User> getUserById(@PathParam() String id);

  @GetReq()
  Future<List<User>> all();

  @PostReq()
  Future<User> createUser(@AsJson() User user);

  @PutReq(path: ":id")
  Future<User> updateUser(String id, @AsJson() User user);

  @DeleteReq(path: ":id")
  Future<void> deleteUser(String id);

  @PostReq(path: "/login")
  Future<void> login(@AsForm() Login login);

  @PatchReq(path: "/avatar")
  Future<void> avatar(@AsBody() List<int> data);

  @PostReq()
  Future<User> serialize(@Serialized(MimeTypes.json) User data);
}

Generate

pub run build_runner build

Use it

  final repo = JsonRepo()..add(UserSerializer());
  final api = UserApi(base: route("http://localhost:10000"))..jsonConverter = repo;;
  User user = await api
        .createUser(User(id: '5', name: 'five', email: 'five@five.com'));
4
likes
0
pub points
40%
popularity

Publisher

unverified uploader

Retrofit inspired declarative HTTP client for Dart.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

http, jaguar_mimetype, jaguar_resty, jaguar_serializer, meta

More

Packages that depend on jaguar_retrofit