sgcOpenAPI REST istemcilerini elle yazmayı bırakın. Girdi belirtim, çıktı Pascal.

sgcOpenAPI'yi bir OpenAPI 3.x belgesine yöneltin. Ayrıştırıcı belgeyi okur, üretici yerel bir Object Pascal SDK'sı oluşturur, OpenAPI sunucu bileşeni ise kendi uç noktalarınızı canlı bir belirtim olarak yayımlar.

  • OpenAPI 3.0 ve 3.1
  • JSON ve YAML
  • Swagger 2.0 otomatik dönüştürülür
  • Delphi 7'den RAD Studio 13'e
  • C++ Builder
  • 1.195+Resmi belirtimlerden üretilmiş hazır bulut SDK'ları
  • 280+Amazon AWS hizmeti
  • 650+Microsoft Azure hizmeti
  • 250+Google Cloud hizmeti
  • 15+Microsoft Graph SDK'sı
Çalışırken izleyin

sgcOpenAPI'yi iki dakikada görün.

Girdi belirtim, çıktı Pascal ve iki uçta da bir sunucu. Seslendirmeli ve altyazılı. Oynat'a basana kadar hiçbir şey indirilmez.

sgcOpenAPI hızlı başlangıç

Bir belirtimi Delphi koduna, Delphi kodunu da çalışan bir sunucuya dönüştürün.

  1. İstemci üretinKomut satırına bir girdi belirtimi ve bir çıktı Pascal dosyası verin. Girdi bir dosya ya da URL, JSON ya da YAML olabilir.
  2. Ortaya ne çıkarSıradan Pascal: her işlem bir metot, her şema bir sınıf olur. Bunun yerine sunucu iskeleti için -s ekleyin.
  3. Spec-First sunucuTsgcWSAPIServer_OpenAPI oluşturun, LoadFromFile çağırın, OnRequest olayını işleyin, sunucunuza atayın ve Active yapın.
  4. Code-First sunucuBir Delphi sınıfını özniteliklerle işaretleyin, belirtim başlangıçta sınıftan üretilsin.
  5. DoğrulamaValidateRequest ve ValidateRequestBody seçeneklerini açın, belirtimle uyuşmayan bir istek kodunuza hiç ulaşmasın.
Hazır SDK kitaplığı

Dört bulut, şimdiden Pascal'da.

Başlamak için hiçbir şey üretmeniz gerekmez. En büyük dört bulut platformu, resmi belirtimlerden üretilmiş ve güncel tutulan, kullanıma hazır Pascal SDK'ları olarak sgcOpenAPI içinde gelir.

Amazon AWS, 280+ hizmet

S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation ve daha fazlasını kapsayan REST hizmeti SDK'ları. Birimi projeye ekleyin ve hizmeti türlü istek ve yanıt sınıflarıyla çağırın.

AWS SDK'larını görüntüleyin →

Microsoft Azure, 650+ hizmet

Kitaplığın en büyük kümesi. Azure VM'leri, Blob Storage, Functions, Cosmos DB, Key Vault ve Azure denetim düzleminin geri kalanı, her biri üretilmiş bir Pascal istemcisi.

Azure SDK'larını görüntüleyin →

Diğer tüm belirtimler

API bir OpenAPI veya Swagger belgesi yayımlıyorsa, üretici onu aynı türde türlü bir Pascal birimine dönüştürür. İzin verilenler listesi yoktur.

Üretici özellikleri →

Her seviyede her şey dahil

Single, Team ve Site seviyelerinin hepsi ayrıştırıcıyı, kod üreticiyi, OpenAPI sunucu bileşenini ve hazır SDK kitaplığının tamamını içerir. Hiçbir şey ayrıca satılmaz.

Tüm hazır SDK'lar →

Herkese açık bir belirtimden derlenen bir Delphi istemcisine, uygulamalı kılavuzlar

İş akışı

Girdi belirtim, çıktı derlenen kod.

Beş adım, hepsi IDE içinde. Node.js yok, Java kod üreticisi yok, öğrenilecek şablon motoru yok.

# one input, one output, and you have a unit
> sgcOpenAPI.exe -i "api.github.com.json" -o "github.pas" -a 2

File successfully created github.pas

# -a 2 wires up token auth   -u sets the base url
# -x drops operations        -p prunes the classes they used
# -s emits a server stub instead of a client
# exit 0 ok, 5 bad input, 6 bad output, 7 not convertible
uses
  github;  // the unit you just generated

procedure TForm1.btnReposClick(Sender: TObject);
var
  oResponse: TsgcOpenAPI_reposlistforauthenticateduser_Response;
  oRepo: TsgcOpenAPI_repository_Class;
begin
  GetOpenAPIClient.Authentication.Token.BearerToken := 'ghp_...';

  oResponse := GetOpenAPIClient.reposlistforauthenticateduser(
    'private', 'owner', 'all', 'full_name', '', 100, 1);
  try
    if oResponse.IsSuccessful then
      for oRepo in oResponse.Successful.Items do
        Memo1.Lines.Add(oRepo.Full_name)
    else
      Memo1.Lines.Add(IntToStr(oResponse.ResponseCode) + ' ' +
        oResponse.ResponseError);
  finally
    oResponse.Free;
  end;
end;
uses
  sgcHTTP_Server, sgcHTTP_OpenAPI_Server, sgcWebSocket_Server_API_OpenAPI;

procedure TForm1.btnStartClick(Sender: TObject);
begin
  FServer := TsgcHTTPServer.Create(Self);
  FServer.Port := 8080;

  FOpenAPI := TsgcWSAPIServer_OpenAPI.Create(Self);
  FOpenAPI.OpenAPIOptions.Endpoint.ServeSpec := True;
  FOpenAPI.OpenAPIOptions.Endpoint.ServeSwaggerUI := True;
  FOpenAPI.OpenAPIOptions.Validation.ValidateRequest := True;
  FOpenAPI.LoadFromFile('petstore.json');
  FOpenAPI.OnRequest := OnOpenAPIRequest;
  FOpenAPI.Server := FServer;

  FServer.Active := True;
end;

// one event, dispatched by operation id
procedure TForm1.OnOpenAPIRequest(Sender: TObject;
  const aOperationId: string;
  const aContext: TsgcOpenAPIServerContext;
  var Handled: Boolean);
begin
  Handled := True;
  if aOperationId = 'getPetById' then
    aContext.RespondJSON(200,
      FPets.Values[aContext.PathParamAsString('petId')])
  else
    Handled := False;
end;
  1. Bir belirtime yöneltinYerel bir dosyayı veya bir URL'yi (JSON ya da YAML) -i ile belirtin. İkisi de yerelde okunur, bir Swagger 2.0 belgesi de yerelde OpenAPI 3'e dönüştürülür.
  2. AyrıştırınTsgcOpenAPI belgeyi şu alanlara okur: Paths, Bileşenler, Security, Servers, Tags ve Info, karşılanamayan her şeyi ise Warningsalanına kaydeder. Harici $ref işaretçileri, önceden şu bileşen tarafından getirilir: TsgcOpenAPI_Bundle.
  3. ÜretinTsgcOpenAPI_Parser_Client_Pascal bu okuyucudan türer ve tek bir Pascal birimi yazar: işlem başına bir metot, metot başına bir yanıt sınıfı ve her şema için bir sınıf, belgedeki açıklamalar yorum olarak eklenir.
  4. DerleyinÜretilen birimi projeye ekleyin ve bir uses yan tümcesine yazın. Delphi 7'den RAD Studio 13'e kadar, kitaplık yolunda sgcOpenAPI Source klasöründen başka bir şey bulunması gerekmez. Türlü yanıtlar XE7 veya üstünü gerektirir.
  5. ÇağırınÖnce GetOpenAPIClientçağırın, kimlik bilgilerini Authenticationüzerinde ayarlayın ve işlemi çağırın. Temel URL, belgenin servers girdisinden zaten hazır gelir.

Üretici okuyucudan türediği için TsgcOpenAPI nesnesini kendiniz de oluşturabilir, ayrıştırılan modelde gezinebilir ve üzerine kendi araçlarınızı geliştirebilirsiniz. Ayrıştırıcı bileşeni →

Sunucu tarafı

Belirtimi yalnızca tüketmeyin, sunun.

TsgcWSAPIServer_OpenAPI bir TsgcHTTPServerüzerine bağlanır, gelen istekleri yüklediğiniz belgeye göre yönlendirir, işleyiciniz çalışmadan önce doğrular ve belgeyi ve bir Swagger UI'yi aynı bağlantı noktasından sunar.

Spec-First: bir Delphi birimi petstore.json dosyasını TsgcWSAPIServer_OpenAPI içine yükler ve rota tablosu belirtimden oluşturulur.

Size ne kazandırır

GET /pets/{petId} isteği OnRequest işleyicinize şu işlem kimliğiyle ulaşır: aOperationId = getPetById. GET /openapi.json yüklediğiniz belgeyi döndürür, GET /docs ise Swagger UI'yi açar. İkisi de şu ayarlarla açılır: Endpoint.ServeSpec ve Endpoint.ServeSwaggerUI. Endpoint.BasePath bu ikiliyi bir önekin altına taşır.

Code-First: sgcServiceContract, sgcRoute ve sgcHttpGet öznitelikleriyle işaretlenmiş bir Delphi sınıfı ve başlangıçta ondan üretilen OpenAPI belgesi.

Spec-First veya Code-First

Bir JSON sözleşmesini LoadFromFile ile yükleyin ve işlem kimliğine göre yönlendirin, ya da bir Pascal sınıfını sgcServiceContract, sgcHttpGet, sgcRoute ve sgcFromBody ile işaretleyin ve belgeyi TsgcOpenAPICodeFirstScanner oluştursun. Code-First, Delphi XE7 veya üstünü gerektirir. Her iki demo da şu klasörde gelir: Demos\30.Server\.

Doğrulama: belirtimle uyuşmayan istekler, OnRequest işleyicisi çalışmadan önce 400 Bad Request ile yanıtlanır.

İşleyiciniz çalışmadan önce doğrulama

Validation.ValidateRequest, ValidateRequired ve ValidateRequestBody gelen isteği, işleyiciniz çalışmadan önce belgeye göre denetler. OnValidationError size işlem kimliğini ve hataların listesini verir, ayrıca isteğin reddedilip reddedilmeyeceğini belirleyen bir Continue bayrağı sunar.

İstek bağlamı: ayrıştırılmış yol, sorgu ve gövde parametreleri ile işleyicide ayarlanan yanıt kodu, içerik türü ve metin.

Kimlik doğrulama belirtimden bağlanır

Belgedeki securityScheme girdileri OnValidateAPIKey, OnValidateBasic ve OnValidateBearerolaylarını yönlendirir. Kimlik bilgisi aramasını siz yazarsınız, bileşen isteği ayrıştırır ve arama olumsuz dönünce doğru durum koduyla yanıt verir.

  • API Key
  • HTTP Basic
  • Bearer
  • JWT
  • OAuth2
  • OpenID Connect
  • Swagger UI

Sunucu, WebSocket uç noktalarınızı ve statik dosyalarınızı barındıran aynı sgcWebSockets HTTP sunucusu üzerinde çalışır. Tek bağlantı noktası, tek TLS sertifikası, tek günlük akışı. OpenAPI sunucu bileşeni →

Lisanslama

Tek ürün, üç seviye.

Delphi ve C++ Builder için tek paket ürün: bir OpenAPI 3.x ayrıştırıcısı, yerel bir Pascal SDK üreticisi, bir OpenAPI sunucu bileşeni ve 1.195+ hazır bulut SDK'sı. Tam kaynak kodu, telifsiz dağıtım. Ekip büyüklüğüne göre seçin.

Single

Bir geliştirici. Ayrıştırıcı, üretici, sunucu bileşeni ve tüm hazır SDK'lar.

€399 / 1 geliştirici

Team

İki geliştirici. Single ile aynı eksiksiz ürün.

€649 / 2 geliştirici

Site

Sınırsız geliştirici. Single ile aynı eksiksiz ürün.

€1,099 / sınırsız geliştirici

sgcOpenAPI ayrı lisanslanır. Ayrıştırıcı, kod üretici, sunucu bileşeni ve 1.195+ hazır SDK'nın tamamı her seviyeye dahildir.

Seviyeleri ve fiyatları karşılaştırın
Referanslar

Geliştiriciler Ne Diyor

Dünya çapında Delphi, C++ Builder, Lazarus ve .NET geliştiricilerinin güvendiği.

sgcWebSockets kütüphaneniz çok kullanışlı ve kurulumu kolay. İyi çalışmalarınızı sürdürün!
Simone Moretti Delphi Geliştiricisi
sgcWebSockets harika ve desteğiniz en iyisi!
Christian Meyer Kurucu ve CTO
Yardımınız ve desteğiniz için çok teşekkürler, bileşenlerinize bayılıyorum.
Mark Steinfeld CTO

İlk Pascal SDK'nızı bugün üretin.

Ayrıştırıcı, kod üretici, OpenAPI sunucu bileşeni ve 1.195+ hazır bulut SDK'sının tamamı tek lisansta. Tam kaynak kodu, telifsiz dağıtım, Delphi 7'den RAD Studio 13'e.

eSeGeCe'den daha fazlası

eSeGeCe'nin Diğer Ürünleri

sgcOpenAPI, Delphi, C++ Builder ve .NET için eSeGeCe bileşen kitaplıklarından biridir. Ortak kurallara sahiptirler, tam kaynak kodla gelirler ve telifsiz dağıtılırlar.

Paketler, eklentiler ve daha fazlası

Blogdan Son Yazılar

Tüm yazıları görüntüleyin →

eSeGeCe'nin sgcOpenAPI görünümünü görüyorsunuz.

Bana başka bir açı gösterin →
30 Günlük Para İade GarantisiMemnun kalmadınız mı? Satın alımdan sonraki 30 gün içinde tam para iadesi talep edin. İade politikasına bakın