1.0.0 • Published 7 years ago
revival v1.0.0
Revival
A RESTful http client for typescript based on XMLHttpRequest.
Installation and Usage
- Revival only support typescript cause it uses decoratos:
npm install revivalor
yarn add revivalAdd
"experimentalDecorators": trueand"emitDecoratorMetadata": trueintsconfig.json.Create api in your project as below:
import { DUMMY, GET, Path } from "revival"
class MyApi {
@GET("user/{id}")
loadAccount(@Path("id") id: string) : Call<Account> {
return DUMMY;
}
}Revivalwill turns all decorators to http request:
let revival: Revival = new RevivalBuilder()
.baseUrl("http://test.com/")
.addInterceptor(new LogInterceptor())
.build();
let myapi = revival.create(MyApi);- Then you can call the api in asynchronous mode(with enqueue):
let Call<Account> = myapi.loadAccount("Vincent");- Revival supports
GET,POST,PUT,PATCH,DELETE,HEAD. - Request url can be set dynamically with
@Path, and the path must surrounded by { and }:
@GET("user/{id}")
loadAccount(@Path("id") id: string) : Call<Account> {
return DUMMY;
}Query parameter can be added with @Query:
@GET("user/{id}")
loadAccount(@Path("id") id: string, @Query("type") type: string) : Call<Account> {
return DUMMY;
}For complex query parameters, you can use a object with @QueryMap:
@GET("user/{id}")
loadAccount(@Path("id") id: string, @QueryMap user: User) : Call<Account> {
return DUMMY;
}- An object can be used as a http request body with
@Body:
@POST("user/new")
createUser(@Body user: User) : Call<Account> {
return DUMMY;
}- Methods can also be declared to send form-encoded(wtth
@FormUrlEncoded) and multipart(with@Multipart) data:
@FormUrlEncoded
@POST("user/update")
updateAccount(@Field("age") age: number, @Field("email") email: string) {
return DUMMY;
}
@Multipart
@PUT("user/update")
updateAccount(@Part("avatar") avatar: Avatar, @Part("name") name: string) {
return DUMMY;
}- Revival will use json to serialize and parse body by default, if you want to convert to something else like xml, you can implement a
ConverterFactoryto serialize and parse body. Use them as below:
let revival: Revival = new RevivalBuilder()
.baseUrl("http://test.com/")
.converterFactory(new XmlConvertFactory())
.build();If you just want a ReviResponse, you must add @Raw:
@Raw
@POST("user/password")
createPassword(@Body password: Password) : Call<ReviResponse> {
return DUMMY;
}- Revival supports call adapter which will turn
Callto rxjs, promise. Check adapter-rxjs and adapter-promise
Credits
- Retrofit - Type-safe HTTP client for Android and Java by Square, Inc.
- Angular/http - One framework. Mobile & desktop.
License
MIT License
Copyright (C) 2017-present Vincent Cheung
This source code is licensed under the MIT license found in the
LICENSE file in the root directory of this source tree.1.0.0
7 years ago
0.5.4
7 years ago
0.5.3
8 years ago
0.5.2
8 years ago
0.5.1
8 years ago
0.5.0
8 years ago
0.4.9
8 years ago
0.4.8
8 years ago
0.4.7
8 years ago
0.4.6
8 years ago
0.4.5
8 years ago
0.4.4
8 years ago
0.4.3
8 years ago
0.4.2
8 years ago
0.4.1
8 years ago
0.4.0
8 years ago
0.3.2
8 years ago
0.3.1
8 years ago
0.3.0
8 years ago
0.2.0
8 years ago
0.1.2
8 years ago
0.1.1
8 years ago
0.1.0-snapshot
8 years ago
0.1.0
8 years ago