ApiTranslator.Core 1.0.0

dotnet add package ApiTranslator.Core --version 1.0.0
                    
NuGet\Install-Package ApiTranslator.Core -Version 1.0.0
                    
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="ApiTranslator.Core" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ApiTranslator.Core" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ApiTranslator.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ApiTranslator.Core --version 1.0.0
                    
#r "nuget: ApiTranslator.Core, 1.0.0"
                    
#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.
#:package ApiTranslator.Core@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ApiTranslator.Core&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ApiTranslator.Core&version=1.0.0
                    
Install as a Cake Tool

ApiTranslator 🔄

NuGet License: MIT

REST, GraphQL ve SOAP API'leri arasında otomatik çeviri yapan .NET 8 middleware paketi.

📦 Kurulum

dotnet add package ApiTranslator

🚀 Kullanım

Fluent API

using ApiTranslator;
using ApiTranslator.Core.Enums;

// REST → GraphQL
var result = await ApiTranslate
    .From(ApiProtocol.REST)
    .To(ApiProtocol.GraphQL)
    .WithUrl("https://api.example.com/graphql")
    .WithParam("id", "1")
    .SendAsync();

// REST → SOAP
var result = await ApiTranslate
    .From(ApiProtocol.REST)
    .To(ApiProtocol.SOAP)
    .WithUrl("https://service.com/calculator.asmx")
    .WithMethod("POST")
    .WithBody("{\"intA\": 10, \"intB\": 5}")
    .SendAsync();

// GraphQL → REST
var result = await ApiTranslate
    .From(ApiProtocol.GraphQL)
    .To(ApiProtocol.REST)
    .WithUrl("https://jsonplaceholder.typicode.com/users/1")
    .WithBody("{ \"query\": \"{ user(id: 1) { id name email } }\" }")
    .SendAsync();

// SOAP → REST
var result = await ApiTranslate
    .From(ApiProtocol.SOAP)
    .To(ApiProtocol.REST)
    .WithUrl("https://jsonplaceholder.typicode.com/users/1")
    .WithMethod("GET")
    .SendAsync();

🔐 Authentication

// 1. API Key
var result = await ApiTranslate
    .From(ApiProtocol.REST)
    .To(ApiProtocol.GraphQL)
    .WithUrl("https://api.example.com/graphql")
    .WithApiKey("my-secret-key")
    .SendAsync();

// 2. Bearer Token
var result = await ApiTranslate
    .From(ApiProtocol.REST)
    .To(ApiProtocol.SOAP)
    .WithUrl("https://service.com/api")
    .WithBearerToken("eyJhbGciOiJIUzI1NiJ9...")
    .SendAsync();

// 3. Basic Auth
var result = await ApiTranslate
    .From(ApiProtocol.GraphQL)
    .To(ApiProtocol.REST)
    .WithUrl("https://api.example.com/users")
    .WithBasicAuth("admin", "password123")
    .SendAsync();

// 4. OAuth2 — token otomatik alınır
var result = await ApiTranslate
    .From(ApiProtocol.REST)
    .To(ApiProtocol.GraphQL)
    .WithUrl("https://api.example.com/graphql")
    .WithOAuth2(
        tokenEndpoint: "https://auth.example.com/token",
        clientId:      "my-client-id",
        clientSecret:  "my-secret",
        scope:         "api.read"
    )
    .SendAsync();

🏗️ Dependency Injection

// Program.cs
using ApiTranslator.Handlers;

builder.Services.AddApiTranslator(options =>
{
    options.IgnoreSslErrors = false;
    options.Timeout = TimeSpan.FromSeconds(30);
});

// Controller
public class MyController : ControllerBase
{
    private readonly ITranslationEngine _translator;

    public MyController(ITranslationEngine translator)
        => _translator = translator;

    public async Task<IActionResult> MyAction()
    {
        var result = await _translator.TranslateAsync(new TranslationRequest
        {
            SourceProtocol = ApiProtocol.REST,
            TargetProtocol = ApiProtocol.GraphQL,
            TargetUrl      = "https://api.example.com/graphql",
            QueryParams    = new() { { "id", "1" } }
        });

        return Ok(result.Body);
    }
}

🔄 Desteklenen Çeviriler

Kaynak Hedef Durum
REST GraphQL
REST SOAP
GraphQL REST
SOAP REST
GraphQL SOAP
SOAP GraphQL

🔐 Desteklenen Auth Yöntemleri

Yöntem Metod
API Key .WithApiKey("key", "X-API-Key")
Bearer .WithBearerToken("token")
Basic Auth .WithBasicAuth("user", "pass")
OAuth2 .WithOAuth2("endpoint", "id", "secret")

🏗️ Mimari

ApiTranslator
├── Core        → Interface'ler ve modeller
├── Handlers    → REST, GraphQL, SOAP handler'ları
└── Gateway     → Demo Web API (Swagger)

Strategy Pattern + Adapter Pattern kullanılmıştır.

📄 Lisans

MIT © 2024

Product Compatible and additional computed target framework versions.
.NET 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ApiTranslator.Core:

Package Downloads
ApiTranslator

Universal API Translator - REST, GraphQL ve SOAP arasında otomatik çeviri yapan .NET middleware

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 136 3/7/2026