OpenApiClient 1.0.0-preview.3

This is a prerelease version of OpenApiClient.
dotnet add package OpenApiClient --version 1.0.0-preview.3                
NuGet\Install-Package OpenApiClient -Version 1.0.0-preview.3                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenApiClient" Version="1.0.0-preview.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OpenApiClient --version 1.0.0-preview.3                
#r "nuget: OpenApiClient, 1.0.0-preview.3"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OpenApiClient as a Cake Addin
#addin nuget:?package=OpenApiClient&version=1.0.0-preview.3&prerelease

// Install OpenApiClient as a Cake Tool
#tool nuget:?package=OpenApiClient&version=1.0.0-preview.3&prerelease                

☄️ OpenAPI Client

Created with ❤ in Poland by lepo.co
OpenAPI Client is a toolkit that helps you create HTTP clients for external APIs based on their OpenAPI specifications. It simplifies the process of consuming and interacting with various web services. The project is developed and maintained by lepo.co and other community contributors.

👀 What does this repo contain?

The repository contains NuGet package source code, which uses C# code generators that can be used to generate native C# API clients from YAML or JSON files.

Gettings started

OpenApiClient is available as NuGet package on NuGet.org:
https://www.nuget.org/packages/OpenApiClient

You can add it to your project using .NET CLI:

dotnet add package OpenApiClient

, or package manager console:

NuGet\Install-Package OpenApiClient

Define an Open API file as content in your .csproj file.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net8.0</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenApiClient" Version="1.0.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>compile; build; analyzers</IncludeAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <OpenApiContract Include="google.youtube.api.json" />
  </ItemGroup>

</Project>

Define your partial class as open api client

/// <summary>
/// My YouTube Client.
/// </summary>
[OpenApiClient("google.youtube.api")]
public partial class YouTubeClient;

You can now use your generated client!

IYouTubeClient client = new YouTubeClient(new HttpClient());

var subscribersCount = client.SubscribersCountAsync("mychannel", CancellationToken.None);

Known limitations

Since we are using the generated internal OpenApiAttribute as a marker, conflicts may occur when we use InternalsVisibleTo.

We found the use of nullable essential, so C# 8.0 is required.

OpenAPI

OpenAPI specification is available at:
https://github.com/OAI/OpenAPI-Specification

Community Toolkit

The OpenAPI Client is inspired by the MVVM Community Toolkit:
https://github.com/CommunityToolkit/dotnet

Compilation

Use Visual Studio 2022 and invoke the .sln.

Visual Studio
OpenAPI Client is an Open Source project. You are entitled to download and use the freely available Visual Studio Community Edition to build, run or develop for OpenAPI Client. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.

License

OpenAPI Client is free and open source software licensed under MIT License. You can use it in private and commercial projects.
Keep in mind that you must include a copy of the license in your project.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  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 is compatible.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • .NETStandard 2.1

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0-preview.3 57 3/19/2024