https://github.com/guibranco/guistracini.sdkbuilder
:construction: :gear: A SDK framework that helps create a .NET SDK project for API wrappers/clients
https://github.com/guibranco/guistracini.sdkbuilder
client-library hacktoberfest nuget sdk sdk-framework sdkbuilder-nuget wrapper-api
Last synced: 5 months ago
JSON representation
:construction: :gear: A SDK framework that helps create a .NET SDK project for API wrappers/clients
- Host: GitHub
- URL: https://github.com/guibranco/guistracini.sdkbuilder
- Owner: guibranco
- License: mit
- Created: 2017-05-19T03:40:39.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2024-04-08T04:50:46.000Z (over 1 year ago)
- Last Synced: 2024-04-08T05:26:53.744Z (over 1 year ago)
- Topics: client-library, hacktoberfest, nuget, sdk, sdk-framework, sdkbuilder-nuget, wrapper-api
- Language: C#
- Homepage: https://guibranco.github.io/GuiStracini.SDKBuilder/
- Size: 407 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GuiStracini.SDKBuilder
An SDK framework designed to streamline the creation of C# SDKs for consuming generic REST APIs.

[](https://github.com/guibranco/GuiStracini.SDKBuilder)
[](https://wakatime.com/badge/github/guibranco/GuiStracini.SDKBuilder)---
## 🚀 CI/CD Status
| Build Status | Last Commit | Tests | Coverage | Code Smells | LoC |
|--------------|-------------|-------|----------|-------------|-----|
| [](https://ci.appveyor.com/project/guibranco/guistracini-sdkbuilder/branch/main) | [](https://github.com/guibranco/GuiStracini.SDKBuilder) | [](https://ci.appveyor.com/project/guibranco/guistracini-sdkbuilder/branch/main/tests) | [](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.SDKBuilder) | [](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.SDKBuilder) | [](https://sonarcloud.io/dashboard?id=guibranco_GuiStracini.SDKBuilder) |---
## 🛠️ Code Quality
[](https://app.deepsource.com/gh/guibranco/GuiStracini.SDKBuilder/?ref=repository-badge)
[](https://www.codacy.com/gh/guibranco/GuiStracini.SDKBuilder/dashboard)
[](https://www.codacy.com/gh/guibranco/GuiStracini.SDKBuilder/dashboard)[](https://codecov.io/gh/guibranco/GuiStracini.SDKBuilder)
[](https://www.codefactor.io/repository/github/guibranco/GuiStracini.SDKBuilder)---
## 📦 Installation
### GitHub Releases
[](https://github.com/guibranco/GuiStracini.SDKBuilder/releases)
[](https://github.com/guibranco/GuiStracini.SDKBuilder)Download the latest version from the [Release Page](https://github.com/GuiBranco/GuiStracini.SDKBuilder/releases).
### NuGet Package
| Package | Version | Downloads |
|---------|---------|-----------|
| **GuiStracini.SDKBuilder** | [](https://www.nuget.org/packages/GuiStracini.SDKBuilder/) | [](https://www.nuget.org/packages/GuiStracini.SDKBuilder/) |---
## 📖 Overview
GuiStracini.SDKBuilder simplifies SDK development for REST APIs using WebAPI2 conventions. It provides a **ServiceFactory** class that implements the **IServiceFactory** interface, including methods for **Get, Post, Put, Delete, Head, and Upload** operations.
The library leverages self-convention and custom attributes to generate intelligent endpoints and handle API requests efficiently.
### 🏗 Using `IServiceFactory`, `IRequestBase`, and `IResponseBase`
#### 🔧 IServiceFactory Example:
```csharp
IServiceFactory serviceFactory = new ServiceFactory();
var response = serviceFactory.Get("/api/resource");
```#### 📤 IRequestBase Example:
```csharp
public class MyRequest : IRequestBase {
public string Property { get; set; }
}
```#### 📥 IResponseBase Example:
```csharp
public class MyResponse : IResponseBase {
public string Result { get; set; }
}
```---
## 🏗️ Creating a New SDK
To build a new SDK, you need:
- API endpoints
- Request/response object structures
- Authentication flow details**🔒 Note:** Currently, the package supports **Basic Authorization** (via HTTP headers or JWT). OAuth/OAuth2 is not natively supported, but you can extend it. Contributions via PR are welcome!
---
## 📝 License
This project is licensed under the **MIT License**. See the [LICENSE](https://github.com/guibranco/GuiStracini.SDKBuilder/blob/main/LICENSE) file for details.
---
## 📬 Contact & Contributions
If you have suggestions, bug reports, or feature requests, feel free to open an [issue](https://github.com/guibranco/GuiStracini.SDKBuilder/issues) or submit a PR.
Happy coding! 🚀