DEV Community

Akash Kava
Akash Kava

Posted on

Retrofit Core for .NET Core

Retrofit Core

  1. No build step
  2. Dynamic Service Proxy generator
  3. Support for Header as property

Example


public interface IBackendService {

    // when set, it will always be sent with
    // every request
    [Header("access-key")]
    AccessKey { get; set; }

    [Get("/location/{ip}")]
    Task<IPInfo> GetLocationInfoAsync([Path("ip")] string ip);

    [Post("/location/{ip}")]
    Task<IPInfo> SaveLocationInfoAsync([Body] IPInfo info);

    // retrive http response for detailed response
    [Get("/video/{id}.mp4")]
    Task<HttpResponseMessage> GetRawResponse([Query("id")] string id);

    [Get("/voice/{id}.mp3")]
    Task<byte[]> GetByteArray([Query("id")] string id);
}

Enter fullscreen mode Exit fullscreen mode

Usage


    var client = RetroClient
       .Create<IBackendService, BaseService>(
           new Uri("base url...") , httpClient);

Enter fullscreen mode Exit fullscreen mode

GitHub logo neurospeech / retro-core-fit

REST Library similar to Retrofit for .NET Core

Retrofit Core

  1. No build step
  2. Dynamic Service Proxy generator
  3. Support for Header as property
  4. Generic RequestBuilder

Example

public interface IBackendService {
    // when set, it will always be sent with
    // every request
    [Header("access-key")]
    AccessKey { get; set; }

    [Get("/location/{ip}")]
    Task<IPInfo> GetLocationInfoAsync([Path("ip")] string ip);

    [Post("/location/{ip}")]
    Task<IPInfo> SaveLocationInfoAsync([Path("ip")] string ip, [Body] IPInfo info);
        
    [Get("/voice/{id}.mp3")]
    Task<byte[]> GetByteArrayAsync([Query("id")] string id);
    
    // Response Object with Header
    [Get("/projects")]
    Task<GitLabResponse
Enter fullscreen mode Exit fullscreen mode

Top comments (0)