Refitter 0.1.4-alpha
This is a prerelease version of Refitter.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet tool install --global Refitter --version 0.1.4-alpha
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local Refitter --version 0.1.4-alpha
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Refitter&version=0.1.4-alpha&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package Refitter --version 0.1.4-alpha
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Refitter
Refitter is a CLI tool for generating a C# REST API Client using the Refit library.
Usage:
To generate code from an OpenAPI specifications file, run the following:
$ refitter [path to OpenAPI spec file]
This will generate a file called Output.cs
which contains the Refit interface and contract classes generated using NSwag
Here's an example generated output from the Swagger Petstore example
using Refit;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace GeneratedCode
{
public interface ISwaggerPetstore
{
[Put("/pet")]
Task<Pet> UpdatePet([Body]Pet body);
[Post("/pet")]
Task<Pet> AddPet([Body]Pet body);
[Get("/pet/findByStatus")]
Task<ICollection<Pet>> FindPetsByStatus();
[Get("/pet/findByTags")]
Task<ICollection<Pet>> FindPetsByTags();
[Get("/pet/{petId}")]
Task<Pet> GetPetById(long? petId);
[Post("/pet/{petId}")]
Task UpdatePetWithForm(long? petId);
[Delete("/pet/{petId}")]
Task DeletePet(long? petId);
[Post("/pet/{petId}/uploadImage")]
Task<ApiResponse> UploadFile(long? petId, [Body]FileParameter body);
[Get("/store/inventory")]
Task<IDictionary<string, int>> GetInventory();
[Post("/store/order")]
Task<Order> PlaceOrder([Body]Order body);
[Get("/store/order/{orderId}")]
Task<Order> GetOrderById(long? orderId);
[Delete("/store/order/{orderId}")]
Task DeleteOrder(long? orderId);
[Post("/user")]
Task CreateUser([Body]User body);
[Post("/user/createWithList")]
Task<User> CreateUsersWithListInput([Body]ICollection<User> body);
[Get("/user/login")]
Task<string> LoginUser();
[Get("/user/logout")]
Task LogoutUser();
[Get("/user/{username}")]
Task<User> GetUserByName(string username);
[Put("/user/{username}")]
Task UpdateUser(string username, [Body]User body);
[Delete("/user/{username}")]
Task DeleteUser(string username);
}
}
The RestService
class generates an implementation of ISwaggerPetstore
that uses HttpClient
to make its calls.
Here's an example usage of the generated code above
using Refit;
using System;
using System.Threading.Tasks;
namespace GeneratedCode;
internal class Program
{
private static async Task Main(string[] args)
{
var client = RestService.For<ISwaggerPetstore>("https://petstore3.swagger.io/api/v3");
var pet = await client.GetPetById(2);
Console.WriteLine($"Name: {pet.Name}");
Console.WriteLine($"Category: {pet.Category.Name}");
Console.WriteLine($"Status: {pet.Status}");
}
}
The code above when run will output something like this:
Name: Gatitotototo
Category: Chaucito
Status: Sold
System requirements
.NET 7.0
For tips and tricks on software development, check out my blog
If you find this useful and feel a bit generous then feel free to buy me a coffee ☕
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
0.9.9 | 7,932 | 3/7/2024 |
0.9.8 | 2,413 | 2/27/2024 |
0.9.7 | 71,914 | 2/7/2024 |
0.9.6 | 201 | 1/29/2024 |
0.9.5 | 35,229 | 1/15/2024 |
0.9.4.43-preview | 76 | 1/15/2024 |
0.9.4 | 32,028 | 1/12/2024 |
0.9.3.42-preview | 112 | 1/10/2024 |
0.9.2 | 20,059 | 1/10/2024 |
0.9.1 | 3,845 | 1/9/2024 |
0.9.0 | 3,041 | 1/9/2024 |
0.8.7.41-preview | 111 | 1/3/2024 |
0.8.7.40-preview | 88 | 12/20/2023 |
0.8.7 | 54,973 | 12/18/2023 |
0.8.6.39-preview | 107 | 12/14/2023 |
0.8.6.38-preview | 121 | 12/14/2023 |
0.8.6 | 3,491 | 12/11/2023 |
0.8.5 | 52,430 | 11/23/2023 |
0.8.4 | 321 | 11/7/2023 |
0.8.3 | 209 | 10/31/2023 |
0.8.2 | 374 | 10/9/2023 |
0.8.1 | 840 | 10/4/2023 |
0.8.0 | 1,709 | 9/23/2023 |
0.7.5 | 2,694 | 9/7/2023 |
0.7.4 | 311 | 9/6/2023 |
0.7.3.37-preview | 173 | 8/25/2023 |
0.7.3.36-preview | 192 | 8/25/2023 |
0.7.3.35-preview | 207 | 8/21/2023 |
0.7.3.34-preview | 211 | 8/15/2023 |
0.7.3.33-preview | 208 | 8/12/2023 |
0.7.3 | 1,961 | 8/26/2023 |
0.7.2.32-preview | 168 | 8/7/2023 |
0.7.2 | 3,723 | 8/7/2023 |
0.7.1.31-preview | 204 | 8/2/2023 |
0.7.1.30-preview | 158 | 8/2/2023 |
0.7.1.29-preview | 211 | 8/1/2023 |
0.7.1 | 668 | 8/3/2023 |
0.7.0.28-preview | 128 | 7/28/2023 |
0.7.0.27-preview | 235 | 7/28/2023 |
0.7.0.26-preview | 212 | 7/27/2023 |
0.7.0.23-preview | 196 | 7/27/2023 |
0.7.0.22-preview | 248 | 7/27/2023 |
0.7.0.21-preview | 186 | 7/27/2023 |
0.7.0.20-preview | 230 | 7/27/2023 |
0.7.0 | 384 | 7/31/2023 |
0.6.3 | 1,143 | 7/22/2023 |
0.6.2 | 10,283 | 6/22/2023 |
0.6.1 | 302 | 6/20/2023 |
0.6.0 | 669 | 6/15/2023 |
0.5.30 | 453 | 6/12/2023 |
0.5.29 | 113 | 6/12/2023 |
0.5.28 | 126 | 6/10/2023 |
0.5.27 | 177 | 5/24/2023 |
0.5.26 | 252 | 5/11/2023 |
0.5.25 | 165 | 5/10/2023 |
0.5.3 | 172 | 5/5/2023 |
0.5.2 | 138 | 5/2/2023 |
0.5.1 | 135 | 5/2/2023 |
0.5.0 | 182 | 4/28/2023 |
0.4.2 | 172 | 4/24/2023 |
0.4.1 | 396 | 4/3/2023 |
0.4.0 | 277 | 3/24/2023 |
0.3.17 | 4,376 | 3/24/2023 |
0.3.16 | 222 | 3/22/2023 |
0.3.4 | 185 | 3/22/2023 |
0.3.3 | 272 | 3/17/2023 |
0.3.2 | 240 | 3/16/2023 |
0.3.1 | 215 | 3/14/2023 |
0.3.0 | 204 | 3/14/2023 |
0.2.4-alpha | 225 | 3/1/2023 |
0.2.3-alpha | 133 | 2/27/2023 |
0.2.2-alpha | 176 | 2/25/2023 |
0.2.1-alpha | 201 | 2/25/2023 |
0.2.0-alpha | 168 | 2/24/2023 |
0.1.5-alpha | 206 | 2/18/2023 |
0.1.4-alpha | 248 | 2/17/2023 |
0.1.3-alpha | 229 | 2/17/2023 |
0.1.2-alpha | 198 | 2/17/2023 |