KurzSharp 3.0.0
See the version list below for details.
dotnet add package KurzSharp --version 3.0.0
NuGet\Install-Package KurzSharp -Version 3.0.0
<PackageReference Include="KurzSharp" Version="3.0.0" />
paket add KurzSharp --version 3.0.0
#r "nuget: KurzSharp, 3.0.0"
// Install KurzSharp as a Cake Addin #addin nuget:?package=KurzSharp&version=3.0.0 // Install KurzSharp as a Cake Tool #tool nuget:?package=KurzSharp&version=3.0.0
KurzSharp
Easily scaffold non-production APIs in any or all of following Architectures:
- GraphQl (HotChocolate)
- Grpc (Code First protobuf-net.Grpc)
- REST (ASP.NET Core Controllers)
Minimum required dotnet version: .NET8
Usage
- Create any model with a
partial class
and add relevant Attribute for ex:RestApi
[GrpcApi] // Whicherver is desired
[RestApi]
[GraphQlApi]
public partial class Product
{
public Guid Id { get; set; }
}
- Configure
KurzSharp
by default Data is stored in Memory with Entity FrameworkUseInMemoryDatabase
services.AddKurzSharp();
For Database add relavent Db package for Entity Framework and configure KurzSharp
similar way to Entity Framework config. (ex: PostgresDb):
services.AddKurzSharp(o => o.UseNpgsql(configuration.GetConnectionString("ProductsDb")));
Map Routes and Services:
app.MapKurzSharpServices();
🎉 You API is ready, Run project and open Swagger Docs.
For GraphQl API open Bana Cake Pop at http://localhost:5114/graphql
For REST or Grpc API open Swagger at http://localhost:5114/swagger
For more information please check examples/TestApi
Features:
- Hook into process to control how/what information on Entity is modified/observed with following hooks. Hook
automatically attached the Model, just
override
the required ones.OnBeforeCreate
OnBeforeAllRead
OnBeforeRead
OnBeforeUpdate
OnBeforeDelete
Ex:
[RestApi]
public partial class Product
{
private readonly ILogger<Product> _logger;
public Product(ILogger<Product> logger)
{
_logger = logger;
}
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public override ProductDto OnBeforeCreate(ProductDto dto)
{
_logger.LogInformation("DI is working...");
return dto;
}
}
How it works:
When a KurzSharp
attributes like RestApi
, GraphQlApi
or GrpcApi
is added on some Model class, it creates a new Dto
entity which has the same properties as the Model. This entity is used to store data through Entity Framework Core
and is also sent over the wire through API. It also takes attributes from the properties and puts them on the Dto
's properties for example: JsonIgnoreAttribute
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 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. |
.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 was computed. |
.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. |
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- HotChocolate (>= 13.9.12)
- HotChocolate.AspNetCore (>= 13.9.12)
- HotChocolate.Data.EntityFramework (>= 13.9.12)
- Microsoft.EntityFrameworkCore.InMemory (>= 8.0.8)
- protobuf-net.Grpc.AspNetCore (>= 1.1.1)
- protobuf-net.Grpc.ClientFactory (>= 1.1.1)
- protobuf-net.Grpc.Reflection (>= 1.1.1)
- System.ServiceModel.Primitives (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.