Dynoproxy 1.0.0-C... License Info
Dynoproxy 1.0.0-CI00005
Dynoproxy
Represents dynamic sources through strictly typed proxies.
WEB REST API invocation
[TestMethod]
public async Task Call_REST_API()
{
using (var proxy = Proxy.Create<ITypicode>("http://jsonplaceholder.typicode.com"))
{
var posts = await proxy.GetAsync();
Assert.AreEqual(100, posts.Length);
var post = await proxy.GetAsync(1);
Assert.AreEqual(1, post.Id);
post.Title = "XYZ";
post = await proxy.PutAsync(1, post);
Assert.AreEqual("XYZ", post.Title);
}
}
where:
public interface ITypicode : IDisposable
{
[Description("GET posts")]
Task<BlogPost[]> GetAsync();
[Description("GET posts/{0}")]
Task<BlogPost> GetAsync(int id);
[Description("PUT posts/{0} {1}")]
Task<BlogPost> PutAsync(int id, BlogPost data);
}
public class BlogPost
{
public int UserId { get; set; }
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
}
Use optional authenticate
parameter to support required authentication schema using custom HttpClient
extension method to setup HttpClient.DefaultRequestHeaders
.
Proxy.Create<ITypicode>(url, (HttpClient client) => client.AuthenticateAsync(...))