Skip to content

RestAPI

声明式 HTTP 客户端接口(Refit 风格特性),在编译期生成实现。

返回类型
Observables.RestAPI.R3Task<T>、R3 Observable<T>
Observables.RestAPI.ReactiveTask<T>IObservable<T>

均包含 Observables.RestAPI 运行时。Reactive 包另需 System.Reactive(共享核心可能还需 R3 运行时)。

定义接口

csharp
using Observables.RestAPI;
using R3;

public interface IUserApi
{
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);

    [Get("/users/{id}")]
    Observable<User> GetUserObservable(int id);
}

var api = RestService.For<IUserApi>(httpClient);
User user = await api.GetUserAsync(42);
User reactive = await api.GetUserObservable(7).FirstAsync();

单次响应的 Observable 请用 FirstAsync(应用内建议带取消令牌)。错误类型为 ApiException

System.Reactive

csharp
using System.Reactive.Linq;
using System.Reactive.Threading.Tasks;

User user = await api.GetUserObservable(7).FirstAsync().ToTask();

诊断

诊断

示例

基于 MIT 许可证发布。