Generate a RestEase compatible client (Interface & Models) based on a Swagger / OpenApi or RAML specification.
- Supports Visual Studio 2017 and 2019
- Add New RestEase API Client to a project from an OpenAPI specification URL (e.g https://petstore.swagger.io/v2/swagger.json)
- Define custom namespace for the generated file
- Auto-updating of generated code file when changes are made to the specification file (.json, .yml, .yaml, .raml)
- This Visual Studio Extension will automatically add the required nuget packages that the generated code depends on.
See https://github.com/StefH/RestEase-Client-Generator/wiki/Options
Excerpt...
paths:
/pet:
post:
tags:
- pet
summary: Add a new pet to the store
description: ''
operationId: addPet
consumes:
- application/json
- application/xml
produces:
- application/xml
- application/json
parameters:
- in: body
name: body
description: Pet object that needs to be added to the store
required: true
schema:
$ref: '#/definitions/Pet'
(Full example).
Excerpt...
namespace RestEaseClientGeneratorConsoleApp.PetStoreJson.Api
{
public interface IPetStoreApi
{
/// <summary>
/// Add a new pet to the store
/// </summary>
/// <param name="pet">A pet for sale in the pet store</param>
[Post("/pet")]
Task AddPetAsync([Body] Pet pet);
// More methods ...
}
}
namespace RestEaseClientGeneratorConsoleApp.PetStoreJson.Models
{
public class Pet
{
public long Id { get; set; }
// More properties ...
}
}
(Full example).
var petStoreApi = RestClient.For<IPetStoreApi>("https://petstore.swagger.io/v2");
var findPetsByTags = await petStoreApi.FindPetsByTagsAsync(new[] { "cat" });
- Project source code is based on REST API Client Code Generator
- Code used from https://raw.githubusercontent.com/andeart/CaseConversions/master/CaseConversions/CaseConversion.cs
- Code used from https://www.codeproject.com/articles/6294/description-enum-typeconverter