Nswag C# (Geliştiriciler için Nasıl Çalışır)
API'ler, farklı yazılım sistemleri ve bileşenleri arasında iletişimi kolaylaştırdığı için bugünün yazılım geliştirme ortamında gereklidir. Geliştiricilerin API'leri verimli bir şekilde kullanabilmesi için kapsamlı ve anlaşılır belgelere ihtiyaç vardır. C# API dokümantasyonu iş akışına yardımcı olabilecek iki etkili araç, NSwag C# ve IronPDF'dir. Bu yazıda, NSwag'in, .NET Core ile API spesifikasyonları oluşturmak ve bu spesifikasyonlardan yüksek kaliteli PDF belgeleri üretmek için IronPDF ile nasıl kullanılacağını tartışacağız.
How to Use NSwag in C
- Swagger UI kullanarak bir RESTful web API oluşturun.
- Bir C# konsol uygulaması oluşturun.
- NSwag kütüphanesini yükleyin.
- Namespace'i içe aktarın ve nesneyi oluşturun.
- Swagger JSON'u C# koduna işleyin.
- Kodu çalıştırın ve sonucu görüntüleyin.
NSwag'ı Anlama
NSwag, ASP.NET Web API, ASP.NET Core veya diğer .NET çerçeveleri kullanılarak oluşturulan API'ler için Swagger spesifikasyonlarını veya OpenAPI belgelerini oluşturmayı kolaylaştırmak amacıyla geliştirilmiş bir .NET Swagger araç zinciridir.
NSwag'ın Özellikleri
Swagger Özelliklerinin Üretimi
NSwag, denetleyiciler, modeller ve .NET montajları kullanarak otomatik olarak Swagger özellikleri üretebilir. NSwag, API kodunun yapısını inceleyerek, API uç noktalarını, istek/yanıt formlarını, kimlik doğrulama tekniklerini ve daha fazlasını kapsayan kapsamlı belgeler üretir.
.NET Projeleri ile Bağlantı
Geliştiriciler, NSwag'i .NET projelerine entegre ederek Swagger üretimini kolayca gelişim süreçlerine dahil edebilirler. Geliştiriciler, NSwag'i bir .NET Core projesine ekleyerek, her proje derlendiğinde otomatik olarak Swagger özelliklerinin üretilmesini sağlayarak, dokümantasyonun kod tabanı ile güncel tutulmasını sağlayabilirler.
Kişiselleştirme ve Genişletme
NSwag tarafından sunulan geniş özelleştirme olanakları sayesinde geliştiriciler, üretilen Swagger özelliklerini kolayca kendi özel ihtiyaçlarına uyarlayabilirler. Geliştiriciler, ayarları ve açıklamaları kullanarak yanıt kodları, parametre açıklamaları ve rota adlandırma kuralları gibi oluşturulan belgenin birçok bileşeni üzerinde kontrol sahibidirler.
NSwag ile Başlarken
C# Konsol Uygulamasında NSwag Kurulumu
NSwag Temel Sınıf Kütüphanesi, çekirdek, Ayrıntı ve kod üretim alanını içerir ve NuGet'den yüklenebilir olmalıdır. NSwag'ı bir C# uygulamasına entegre ederek kod ve Swagger özellikleri üretmek ve NSwag'in geliştirme sürecinin verimliliğini nasıl artırabileceğini öğrenin.

Windows Konsol ve Formlarında NSwag Uygulaması
Otomatik istemci üretimi sayesinde, geliştiriciler, masaüstü uygulamalarının içlerinden API'lere erişmek için doğrudan kod üretebilirler NSwag'ı bir Windows masaüstü uygulamasına entegre ederek. Çevrimiçi hizmetlerle veya RESTful API'lerle iletişim kuran masaüstü uygulamaları geliştirirken bu çok yardımcı olabilir.
NSwag, web uygulamalarında, harici API'leri tüketmek için istemci kodunu ve dahili API'ler için belgeler sağlamak amacıyla kullanılabilir. Bu, geliştiricilerin uygulamalarının ön uç ve arka uç bileşenlerini uyumlu tutmalarına yardımcı olur.
NSwag C# Örneği
İşte NSwag kullanarak C# istemci kodu üretmenin nasıl yapılacağını gösteren bir kod örneği:
using NSwag.CodeGeneration.CSharp;
using NSwag;
using System.Reflection;
using System.CodeDom.Compiler;
using Microsoft.CodeAnalysis;
using System.Net.Http;
using System.IO;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (var wclient = new System.Net.WebClient())
{
// Create JSON file data from the Swagger .NET Core web API
var document = await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json"));
var settings = new CSharpClientGeneratorSettings
{
ClassName = "Weather",
CSharpGeneratorSettings = { Namespace = "Demo" }
};
var generator = new CSharpClientGenerator(document, settings);
var code = generator.GenerateFile();
var assembly = CompileCode(code);
var clientType = assembly.GetType("Demo.WeatherClient"); // Replace with your actual client class name
using (var httpClient = new HttpClient())
{
var client = (IApiClient)Activator.CreateInstance(clientType, httpClient);
var result = await client.GetWeatherForecastAsync();
foreach (var item in result)
{
Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}");
}
}
}
}
static Assembly CompileCode(string code)
{
using (var memoryStream = new MemoryStream())
{
var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location);
var references = new List<MetadataReference>
{
MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll"))
};
var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient")
.WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary))
.AddReferences(references)
.AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code));
var emitResult = compilation.Emit(memoryStream);
if (!emitResult.Success)
{
Console.WriteLine("Compilation errors:");
foreach (var diagnostic in emitResult.Diagnostics)
{
Console.WriteLine(diagnostic);
}
return null;
}
memoryStream.Seek(0, SeekOrigin.Begin);
return Assembly.Load(memoryStream.ToArray());
}
}
public interface IApiClient
{
// Replace with your actual method name and return type
Task<List<WeatherForecast>> GetWeatherForecastAsync();
}
public class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF { get; set; }
public string Summary { get; set; }
}
}
using NSwag.CodeGeneration.CSharp;
using NSwag;
using System.Reflection;
using System.CodeDom.Compiler;
using Microsoft.CodeAnalysis;
using System.Net.Http;
using System.IO;
using System.Collections.Generic;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (var wclient = new System.Net.WebClient())
{
// Create JSON file data from the Swagger .NET Core web API
var document = await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json"));
var settings = new CSharpClientGeneratorSettings
{
ClassName = "Weather",
CSharpGeneratorSettings = { Namespace = "Demo" }
};
var generator = new CSharpClientGenerator(document, settings);
var code = generator.GenerateFile();
var assembly = CompileCode(code);
var clientType = assembly.GetType("Demo.WeatherClient"); // Replace with your actual client class name
using (var httpClient = new HttpClient())
{
var client = (IApiClient)Activator.CreateInstance(clientType, httpClient);
var result = await client.GetWeatherForecastAsync();
foreach (var item in result)
{
Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}");
}
}
}
}
static Assembly CompileCode(string code)
{
using (var memoryStream = new MemoryStream())
{
var assemblyPath = Path.GetDirectoryName(typeof(object).Assembly.Location);
var references = new List<MetadataReference>
{
MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")),
MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll"))
};
var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient")
.WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary))
.AddReferences(references)
.AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code));
var emitResult = compilation.Emit(memoryStream);
if (!emitResult.Success)
{
Console.WriteLine("Compilation errors:");
foreach (var diagnostic in emitResult.Diagnostics)
{
Console.WriteLine(diagnostic);
}
return null;
}
memoryStream.Seek(0, SeekOrigin.Begin);
return Assembly.Load(memoryStream.ToArray());
}
}
public interface IApiClient
{
// Replace with your actual method name and return type
Task<List<WeatherForecast>> GetWeatherForecastAsync();
}
public class WeatherForecast
{
public DateTime Date { get; set; }
public int TemperatureC { get; set; }
public int TemperatureF { get; set; }
public string Summary { get; set; }
}
}
Imports NSwag.CodeGeneration.CSharp
Imports NSwag
Imports System.Reflection
Imports System.CodeDom.Compiler
Imports Microsoft.CodeAnalysis
Imports System.Net.Http
Imports System.IO
Imports System.Collections.Generic
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
Using wclient = New System.Net.WebClient()
' Create JSON file data from the Swagger .NET Core web API
Dim document = Await OpenApiDocument.FromJsonAsync(wclient.DownloadString("http://localhost:5013/swagger/v1/swagger.json"))
Dim settings = New CSharpClientGeneratorSettings With {
.ClassName = "Weather",
.CSharpGeneratorSettings = { [Namespace] = "Demo" }
}
Dim generator = New CSharpClientGenerator(document, settings)
Dim code = generator.GenerateFile()
Dim assembly = CompileCode(code)
Dim clientType = assembly.GetType("Demo.WeatherClient") ' Replace with your actual client class name
Using httpClient As New HttpClient()
Dim client = DirectCast(Activator.CreateInstance(clientType, httpClient), IApiClient)
Dim result = Await client.GetWeatherForecastAsync()
For Each item In result
Console.WriteLine($"Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}")
Next item
End Using
End Using
End Function
Private Shared Function CompileCode(ByVal code As String) As System.Reflection.Assembly
Using memoryStream As New MemoryStream()
Dim assemblyPath = Path.GetDirectoryName(GetType(Object).Assembly.Location)
Dim references = New List(Of MetadataReference) From {MetadataReference.CreateFromFile(GetType(Object).GetTypeInfo().Assembly.Location), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "Microsoft.AspNetCore.Mvc.dll")), MetadataReference.CreateFromFile(Path.Combine(assemblyPath, "System.Private.CoreLib.dll"))}
Dim compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("ApiClient").WithOptions(New Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)).AddReferences(references).AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.SyntaxFactory.ParseSyntaxTree(code))
Dim emitResult = compilation.Emit(memoryStream)
If Not emitResult.Success Then
Console.WriteLine("Compilation errors:")
For Each diagnostic In emitResult.Diagnostics
Console.WriteLine(diagnostic)
Next diagnostic
Return Nothing
End If
memoryStream.Seek(0, SeekOrigin.Begin)
Return System.Reflection.Assembly.Load(memoryStream.ToArray())
End Using
End Function
Public Interface IApiClient
' Replace with your actual method name and return type
Function GetWeatherForecastAsync() As Task(Of List(Of WeatherForecast))
End Interface
Public Class WeatherForecast
Public Property [Date]() As DateTime
Public Property TemperatureC() As Integer
Public Property TemperatureF() As Integer
Public Property Summary() As String
End Class
End Class
Kullanmak istediğimiz API için, Swagger spesifikasyonunun URL'sini belirtiriz (swaggerUrl). Daha sonra oluşturulan ve bir DLL montajına çalıştırılan istemci kodunu tanımlarız. OpenApiDocument, belirli URL'den Swagger belgesini asenkron olarak yüklemek için kullanılır, FromJsonAsync ile. Üretilen istemci kodunu değiştirmek için, kod üreteç ayarlarını ayarlarız (CSharpClientGeneratorSettings). Bu örnekte, üretilen istemci kodunun sınıf adı ve alanı belirtilmiştir.
Yüklenen Swagger belgesinden, CSharpClientGenerator örneği oluştururuz ve bunu istemci kodu üretmek için kullanırız. Oluşturulan istemci kodu, belirlenen çıkış yoluna kaydedilir. Prosedür sırasında ortaya çıkabilecek herhangi bir istisnaya veya hataya yanıt olarak, ilgili bildirimleri konsolda gösteririz.

NSwag İşleyişi
İstemci Kodu Üretme
NSwag, bir Swagger spesifikasyonunu kullanarak Java, TypeScript, C# dahil pek çok dilde istemci kodu üretebilir. Bu, geliştiricilerin API'leri uygulamalarında kullanmasını kolaylaştırır.
Sunucu Kodu Üretme
NSwag, bir Swagger spesifikasyonunu temel alarak ASP.NET Core denetleyicileri gibi sunucu kodları da üretebilir. Bu, API implementasyonları için sunucu tarafı kodu hızla kalıp olarak oluşturmaya yardımcı olur.
Etkileşimli API Dokümantasyonu Üretmek
Verilen bir Swagger spesifikasyonu ile NSwag, Swagger UI gibi etkileşimli API dokümantasyonu üretebilir. Bu dokümantasyon, API uç noktalarını keşfetmek ve test etmek için kullanımı kolay bir arayüz sunar.
Proxy Sınıfı Üretmek
NSwag, SOAP tabanlı API'lere entegre etmek için proxy sınıfları üretebilir. Bu, programcılara, uygulamaları içinde SOAP servislerine erişmek için üretilen istemci kodunu kullanmalarına olanak tanır.
Swagger Spesifikasyonlarını Doğrulamak
NSwag, OpenAPI/Swagger standardına uygun olduklarından emin olmak için Swagger spesifikasyonlarını doğrulayabilir. Bu, API dokümantasyonunda hataları veya tutarsızlıkları görmeyi kolaylaştırır.
NSwag ile IronPDF'yi Entegre Etmek
Geliştiriciler, her iki teknolojinin avantajlarından yararlanarak, NSwag ve IronPDF'yi birleştirerek API dokümantasyonu iş akışını iyileştirebilir. NSwag kullanarak Swagger spesifikasyonları oluşturup IronPDF ile PDF'ye dönüştürerek, paylaşılabilir ve çevrimdışı hazır .NET web API dokümantasyonları üretebilir ve geliştiriciler tarafından kullanılabilir. Entegrasyon süreci aşağıdaki prosedürler içerir:
IronPDF, HTML'den PDF'ye dönüşümde mükemmeldir, özgün düzenler ve stillerin hassas bir şekilde korunmasını sağlar. Raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri için destekle, IronPDF yüksek kaliteli PDF belgelerini kolayca üretir.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
IronPDF'i Kurun
- Visual Studio projesini başlatın.
- "Araçlar" > "NuGet Paket Yöneticisi" > "Paket Yöneticisi Konsolu" seçeneğini tercih edin.
- Komut istemcinizi açın ve Paket Yöneticisi Konsoluna aşağıdaki komutu yazın:
Install-Package IronPdf
- Alternatif olarak, IronPDF'i Çözümler için NuGet Paket Yöneticisi'ni kullanarak da yükleyebilirsiniz.
- IronPDF paketini arama sonuçlarından keşfedin ve ardından "Yükle" seçeneğine tıklayın. Visual Studio, indirme ve kurulum işlemlerini sizin adınıza halledecektir.

- NuGet, IronPDF paketini ve projeniz için gereken tüm bağımlılıkları yükleyecektir.
- Yüklemeden sonra, projeniz için IronPDF kullanabilirsiniz.
NuGet Web Sitesi Üzerinden Yükleme
IronPDF'nin özellikleri, uyumluluğu ve mevcut indirmelerle ilgili daha fazla bilgi için NuGet üzerindeki IronPDF sayfasını ziyaret edin.
DLL kullanarak Yükleme
Alternatif olarak, IronPDF'yi projeünüze doğrudan DLL dosyasını kullanarak dahil edebilirsiniz. DLL'yi içeren ZIP dosyasını indirmek için IronPDF indirme bağlantısına tıklayın. Dosyayı açın ve DLL'i projenize ekleyin.
Lojiği Uygulamak
NSwag kullanarak, geliştiriciler IronPDF ile birlikte CodeGeneration.CSharp kullanarak, API'leri daha hızlı bir şekilde kullanmak için API dokümantasyonu ve istemci kodu oluşturabilirler. Entegrasyon iş akışı aşağıdaki adımları içerir:
- İstemci Kodunu Üret: Swagger spesifikasyonlarından C# istemci kodu oluşturmak için
NSwag.CodeGeneration.CSharpkullanın. Üretilen istemci sınıfları ve API uç noktaları ile iletişim kurma yöntemleri bu adımda otomatiktir. - Veri Almak İçin NSwag Kullan: Swagger spesifikasyonlarından JSON dokümantasyonu üretmek için
CodeGeneration.CSharpkullanın. Bu aşamada, istek/yanıt formatları, kimlik doğrulama teknikleri ve API istemci uç noktaları insan tarafından okunabilir dokümantasyon haline getirilir. - JSON'u PDF'ye Dönüştür: Üretilen kod sonucunu bir PDF belgesine dönüştürmek için IronPDF kullanın. Bu aşamada, HTML metni, paylaşım ve dağıtımı hazır parlak bir PDF belgesine dönüştürülür.
- PDF Dokümantasyonunu Geliştirin: IronPDF kullanarak PDF dokümantasyonuna başlıklar, altbilgiler, filigranlar veya benzersiz marka ekleyerek daha fazla içerik ekleyin. Bu aşama, geliştiricilere PDF dokümantasyonunun görünümünü ve markasını tercihlerine göre kişiselleştirme olanağı tanır.
using IronPdf;
using System.Text;
using System.Collections.Generic;
StringBuilder sb = new StringBuilder();
foreach (var item in result)
{
sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>");
}
var renderer = new HtmlToPdf();
var pdf = renderer.RenderHtmlAsPdf(sb.ToString());
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF generated successfully!");
Console.ReadKey();
using IronPdf;
using System.Text;
using System.Collections.Generic;
StringBuilder sb = new StringBuilder();
foreach (var item in result)
{
sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>");
}
var renderer = new HtmlToPdf();
var pdf = renderer.RenderHtmlAsPdf(sb.ToString());
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF generated successfully!");
Console.ReadKey();
Imports IronPdf
Imports System.Text
Imports System.Collections.Generic
Private sb As New StringBuilder()
For Each item In result
sb.Append($"<p>Date: {item.Date} F: {item.TemperatureF} C: {item.TemperatureC} Summary: {item.Summary}</p>")
Next item
Dim renderer = New HtmlToPdf()
Dim pdf = renderer.RenderHtmlAsPdf(sb.ToString())
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF generated successfully!")
Console.ReadKey()
Yukarıdaki kod, sonuç nesnesinden alınan verileri erişir ve Date, TemperatureF, TemperatureC ve Summary alanlarını bir döngü içinde paragraf olarak ekler. Ardından PDF için çıkış dosya yolunu belirtir ve kullanıcıyı bir PDF'nin başarıyla üretildiği konusunda bilgilendirir.
Aşağıda yukarıdaki koddan çıkan sonuç bulunmaktadır.

Sonuç
CodeGeneration gibi NSwag teknolojileri, CSharp ve IronPDF ile birlikte istemci kodu üretimini ve API dokümantasyonu süreçlerini kolaylaştırmak için iyi çalışır. Geliştiriciler, bu araçları C# uygulamalarına entegre ederek, API güdümlü çözümler geliştirme sürecini hızlandırabilir, API dokümantasyonunun oluşturulmasını otomatikleştirebilir ve profesyonel görünümlü PDF yayınlar üretebilirler. NSwag.CodeGeneration.CSharp ile IronPDF, geliştiricilere masaüstü, web veya bulut tabanlı uygulamalar geliştirirken, API'leri etkili bir şekilde dökümante etmek ve C#'ta istemci kodu üretmek için eksiksiz bir çözüm sunar.
Lite paketi, süresiz bir lisans, bir yıl yazılım bakımı ve kütüphaneye yükseltmeyi içerir. IronPDF, yeniden dağıtım ve süre sınırlamalarına sahip ücretsiz lisanslama sunar. Kullanıcılar, deneme süresi boyunca çözümü bir filigran görmeden değerlendirebilir. Fiyat ve lisans hakkında ek bilgi için lütfen IronPDF'in lisans bilgilerine bakınız. Iron Software'in ürün kütüphaneleri hakkında ek bilgi için Iron Software kütüphaneleri sayfasına gidin.
Sıkça Sorulan Sorular
NSwag, C#'ta API spesifikasyonlarının oluşturulmasına nasıl yardımcı olabilir?
NSwag, .NET Core projelerinden Swagger veya OpenAPI belgeleri olarak bilinen API spesifikasyonlarını otomatik olarak oluşturabilir. Bu, API dokümantasyonunun kod tabanı ile her zaman senkronize olmasını sağlar.
Swagger spesifikasyonlarını PDF belgelerine dönüştürme süreci nedir?
Swagger spesifikasyonlarını PDF belgelerine dönüştürmek için IronPDF'yi kullanabilirsiniz. İlk olarak NSwag kullanarak Swagger spesifikasyonunu oluşturun, ardından bu spesifikasyonların HTML içeriğini IronPDF kullanarak yüksek kaliteli PDF'lere dönüştürün.
NSwag, bir .NET projesine nasıl entegre edilebilir?
NSwag'ı bir .NET projesine entegre etmek, NuGet aracılığıyla NSwag kütüphanesini yüklemeyi, oluşturma süreci boyunca Swagger spesifikasyonları üretmesini yapılandırmayı ve üretilen spesifikasyonları dokümantasyon ve kod üretimi için kullanmayı içerir.
NSwag bir Swagger spesifikasyonundan hem istemci hem de sunucu kodu oluşturabilir mi?
Evet, NSwag C#, Java ve TypeScript gibi dillerde istemci kodunu, ve ASP.NET Core denetçileri gibi sunucu kodunu bir Swagger spesifikasyonundan oluşturabilir.
IronPDF, API dokümantasyon iş akışını nasıl artırır?
IronPDF, HTML tabanlı API dokümantasyonunu profesyonel, paylaşılabilir PDF belgelerine dönüştürerek API dokümantasyon iş akışını artırır, bilgilerin çevrimdışı erişilebilir olmasını sağlar.
IronPDF'nin bir Visual Studio projesinde kullanılabilmesi için gereken adımlar nelerdir?
IronPDF'nin bir Visual Studio projesinde kullanılması için, NuGet Paket Yöneticisi aracılığıyla IronPDF'yi yükleyin, veya Paket Yöneticisi Konsolu üzerinden Install-Package IronPdf komutunu kullanın.
NSwag kullanarak etkileşimli API dokümantasyonu nasıl oluşturulabilir?
NSwag, bir Swagger UI oluşturarak etkileşimli API dokümantasyonu üretebilir, bu da tarayıcıda API uç noktalarını keşfetmek ve test etmek için kullanıcı dostu bir arayüz sağlar.
API dokümantasyonu için NSwag kullanmanın faydaları nelerdir?
NSwag, API dokümantasyonunun kod tabanı ile her zaman güncel olmasını sağlar ve etkileşimli dokümantasyon ve istemci tarafı kod oluşturulmasını destekler, geliştirme sürecini hızlandırır.
IronPDF, HTML içeriğiyle çalışırken nasıl PDF oluşturur?
IronPDF, CSS ve JavaScript dahil olmak üzere HTML içeriğini PDF formatına, kendi render motorunu kullanarak dönüştürür, bu da web tabanlı içeriklerden kesin, çevrimdışı hazır belgeler oluşturmayı ideal hale getirir.




