[Ders] Node.js ile SOAP API'leri Uygulamak

Node.js, SOAP API'ları için popüler bir JavaScript yazılımıdır. Asenkron görevleri ve tarayıcı dışında JS çalıştırma yeteneğiyle SOAP API'ları uygulayalım.

Efe Demir

Efe Demir

5 June 2025

[Ders] Node.js ile SOAP API'leri Uygulamak

Node.js, ücretsiz indirilebilir, açık kaynaklı, platformlar arası bir JavaScript çalışma zamanı ortamıdır. Geliştiricilerin JavaScript kodunu bir web tarayıcısının dışında çalıştırmasına olanak tanır. Node.js'nin harika yanı ücretsiz olmasıdır - tek yapmanız gereken indirmeye başlamak için web sitelerini ziyaret etmek.

nodejs website
Node.js web sitesi
💡
Apidog, API'leri oluşturma, test etme, belgeleme ve taklit etme konusunda uzmanlaşmış, ücretsiz, indirilebilir bir API geliştirme platformudur. İster bağımsız bir geliştirici olun, ister bir ekibin parçası olun, Apidog gereksinimlerinizi destekleyebilir.

Node.js üzerinde oluşturduğunuz bir SOAP API'sini test etmek için bir araç arıyorsanız, Apidog harika bir seçimdir! Tek yapmanız gereken, test etmeye başlamak için aşağıdaki düğmeye tıklamak! 👇 👇 👇
button

Bu makale, Node.js programını web sitesinden indirdiğinizi varsayacaktır, bu nedenle daha çok bir SOAP API'si oluşturma konusunda rehberlik etmeye odaklanacaktır.

Node.js ile SOAP API'leri oluşturmayı ne zaman düşünmelisiniz?

SOAP API'leri yavaş yavaş düşüşte olsa da, birlikte çalışabilirliği sağlamak için Node.js ile SOAP API'leri oluşturmanız gerekebileceği birçok durum hala bulunmaktadır.

Eski sistemlerle entegrasyon: SOAP hala eski sistemlerde yaygın olarak kullanılmaktadır ve eşzamansız görevleri verimli bir şekilde işleme yeteneği ile Node.js, bu sistemlerle sorunsuz bir şekilde entegre olan API'ler oluşturmak için çok uygun olabilir.

Belirli endüstri gereksinimleri: Sağlık ve finans sektörleri, yerleşik standartlar ve düzenlemeler nedeniyle hala SOAP'ye büyük ölçüde güvenebilir. Node.js, bu sektörler için uyumlu ve verimli SOAP API'leri oluşturmaya yardımcı olabilir.

Mevcut SOAP istemcileriyle birlikte çalışabilirlik: Mevcut uygulamalara veya öncelikle iletişim için SOAP kullanan bir hizmete bağlanmanız gerekiyorsa, bir Node.js SOAP API'si oluşturmak birlikte çalışabilirliği kolaylaştırabilir.

Node.js ile SOAP API'si Oluşturmanın Kısa Bir Özeti

Detaylara girmeden önce, bu bölüm Node.js ile bir SOAP API'si oluşturmaya dair bilgi verecektir.

  1. API'nizi tanımlayın

    API'nizi tanımlamak şunlar gibi ayrıntıları içerir:

    - İşlevsellik: API'nizin sağlamayı hedeflediği işlemleri veya hizmetleri belirleyin.

    - Veri yapısı: İstemci ve API arasında değiş tokuş edilen verilerin biçimi (genellikle XML'de) doğrulanmalıdır.

    - WSDL dosyası: API'nizin açıklamasını sağlayan bir WSDL (Web Services Description Language) dosyası oluşturmanız gerekir.
  2. soap kütüphanesini yükleyin:

    Terminalinizde, soap kütüphanesini yüklemek için npm kullanın.
  3. Sunucu tarafı mantığını uygulama:

    soap kütüphanesini SOAP API'nize veya web hizmetinize aktarın. Bu süre zarfında, WSDL dosya yolunuzla birlikte soap.createServer yöntemini uygulayarak bir SOAP sunucusu da oluşturmalısınız. Son olarak, gelen istekleri işlemek, işlemek ve istemciye uygun yanıtlar döndürmek için bir işlev tanımlayın.
  4. Sunucuyu başlatma:

    SOAP sunucusunu başlatmak için server.listen yöntemini uygulayın. Bu, SOAP API'nizin belirtilen bağlantı noktasında gelen SOAP isteklerini almasını sağlayacaktır.

Node.js ile SOAP API'si Oluşturma Konusunda Ayrıntılı Adım Adım Kılavuz

Not: Sağlanan kod örnekleri, kullanıcıların adlarına göre selamlamalar sağlayan bir SOAP API'si oluşturmak için örnek kodlardır. Kodu kişisel kullanım için kullanmayı düşünüyorsanız, değişikliklerin yapıldığından emin olun.

Adım 1: SOAP Kütüphanesini Yükleme

Terminalinizi açın ve bu komutu çalıştırın.

npm install soap

Bu şekilde, SOAP API'niz artık tüm yöntemlerini kullanarak soap kütüphanesini içe aktarabilir.

Adım 2: WSDL Dosyasını Hazırlama

SOAP API'nizi bir WSDL dosyasına göre tasarlayabileceğiniz için, mantığı XML (Extensible Markup Language) aracılığıyla uygulamanız gerekecektir. Bu WSDL dosyasını, işlevselliğine öngörülebilirlik sağlamak için greetUser.wsdl olarak adlandıracağız.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://tempuri.org/Greeter" 
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
  xmlns:tns="http://tempuri.org/Greeter" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:types>
    <xsd:complexType name="GreetRequest">
      <xsd:sequence>
        <xsd:element name="name" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="GreetResponse">
      <xsd:sequence>
        <xsd:element name="greeting" type="xsd:string"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:types>

  <wsdl:message name="GreetRequestMessage">
    <wsdl:part name="parameters" element="tns:GreetRequest"/>
  </wsdl:message>

  <wsdl:message name="GreetResponseMessage">
    <wsdl:part name="result" element="tns:GreetResponse"/>
  </wsdl:message>

  <wsdl:portType name="GreeterPort">
    <wsdl:operation name="Greet">
      <wsdl:input message="tns:GreetRequestMessage"/>
      <wsdl:output message="tns:GreetResponseMessage"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="GreeterBinding" type="tns:GreeterPort">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" xmlns:soap="http://schemas.xmlsoap.org/soap/"/>

    <wsdl:operation name="Greet">
      <soap:operation soapAction="http://tempuri.org/Greeter/Greet"/>
      <wsdl:input>
        <soap:body use="encoded" parts="tns:parameters"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" parts="tns:result"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="GreeterService">
    <wsdl:port name="GreeterPort" binding="tns:GreeterBinding">
      <soap:address location="http://localhost:8080/Greeter"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

Kod Açıklaması:

Kod, Greet adlı bir işlemle bir GreeterService tanımlar. Bir kullanıcının adını girdi olarak alır ve istemciye bir selamlama mesajı döndürür. SOAP adresi de sağlanır, bu da http://localhost:8080/Greeter"'dir

Adım 3: Sunucu Tarafı SOAP API Kodu Oluşturma

İstemcilerinizin sunucu tarafıyla etkileşim kurabilmesi için, köprüyü - esasen SOAP API'nizi - hazırlamanız gerekir! Bu örnek için, bu dosyayı server.js olarak adlandıracağız, çünkü bu, sunucu için karşılık gelen JavaScript kodlamasıdır.

const soap = require('soap');

// Define the service endpoint and port
const url = 'http://localhost:8080/Greeter';

// Create the server
const server = soap.createServer({
  wsdl: './greeter.wsdl', // Replace with the actual path to your WSDL file
});

// Define the service method
server.addFunction('Greet', (args) => {
  // Extract the name from the request
  const name = args.name;

  // Generate the greeting message
  const greeting = `Hello, ${name}!`;

  // Return the greeting as the response
  return { greeting };
});

// Start the server
server.listen(process.env.PORT || 8080, () => {
  console.log(`SOAP server listening on port ${process.env.PORT || 8080}`);
});

Kod Açıklaması:

  1. soap kütüphanesini içe aktarın: 1. satır, Node.js'de SOAP iletişimini sağlayan soap kütüphanesini içe aktarır.
  2. Hizmet uç noktasını ve bağlantı noktasını tanımlayın: 4. satırdaki değişkenler, SOAP hizmetinizin erişilebilir olacağı URL'yi ve bağlantı noktasını depolar. http://localhost:8080/Greeter'ı dağıtımınız için gerçek URL ile değiştirmeyi unutmayın.
  3. Sunucuyu oluşturun: 7 ila 9. satırlar, WSDL dosyanızın yolunu (greeter.wsdl) belirterek soap.createServer yöntemini kullanarak bir SOAP sunucusu oluşturur. Bu yolu WSDL dosyanızın gerçek konumuyla değiştirdiğinizden emin olun.
  4. Hizmet yöntemini tanımlayın: 12 ila 21. satırlar, WSDL'nizdeki işleme karşılık gelen Greet işlevini tanımlar. Gelen istekten name parametresini çıkarır, çıkarılan adı kullanarak bir selamlama mesajı oluşturur ve daha sonra greeting özelliği oluşturulan mesaja ayarlanmış bir nesne döndürür.
  5. Sunucuyu başlatın: 24 ila 26. satırlar, SOAP sunucusunu belirtilen bağlantı noktasında başlatmak için server.listen yöntemini kullanır. PORT ortam değişkenini ayarlayarak bağlantı noktasını özelleştirebilirsiniz.

Adım 4: İstemci Tarafı Kodu Oluşturma

İstemcilerinizin API'nize ulaşması için, belirli talimatlara veya isteklere ihtiyaçları vardır. Bu dosyayı, istemci tarafı kodu olduğunu belirtmek için client.js olarak adlandıracağız.

const soap = require('soap');

// Define the service endpoint
const url = 'http://localhost:8080/Greeter'; // Replace with actual service URL

// Create a client object
soap.createClient(url, (err, client) => {
  if (err) {
    console.error('Error creating SOAP client:', err);
    return;
  }

  // Define the arguments for the Greet operation
  const args = { name: 'John Doe' }; // Replace with desired name

  // Call the Greet operation
  client.Greet(args, (err, response) => {
    if (err) {
      console.error('Error calling Greet operation:', err);
      return;
    }

    // Access the greeting message from the response
    const greeting = response.greeting;

    console.log(greeting); // Output: Hello, John Doe!
  });
});

Kod Açıklaması:

  1. soap kütüphanesini içe aktarın: Sunucu tarafı koduna benzer şekilde, 1. satır SOAP iletişimi için soap kütüphanesini içe aktarır.
  2. Hizmet uç noktasını tanımlayın: Bu değişken, SOAP hizmetinizin URL'sini depolar. http://localhost:8080/Greeter'ı hizmetinizin dağıtıldığı gerçek URL ile değiştirin.
  3. Bir istemci nesnesi oluşturun: soap.createClient yöntemi, belirtilen hizmet uç noktasıyla etkileşim kuran bir SOAP istemci nesnesi oluşturur.
  4. Argümanları tanımlayın: Bu bölüm (14. satır), bu durumda kullanıcının adını içeren Greet işlemi için argümanları tanımlar.
  5. Greet işlemini çağırın: client.Greet yöntemi, tanımlanan argümanları geçirerek sunucudaki Greet işlemini çağırır.
  6. Yanıtı işleyin: Geri çağırma işlevi, sunucunun yanıtını işler; burada bir hata oluşursa, hata mesajını günlüğe kaydeder, aksi takdirde başarılı olursa, yanıttan greeting mesajını çıkarır ve konsola kaydeder.

Herhangi Bir API Geliştiricisi İçin Eksiksiz Bir API Aracı - Apidog

Apidog kapsamlı bir API geliştirme aracıdır. Tasarım öncelikli bir yaklaşımla, kullanıcılarını basit ama güzel kullanıcı arayüzü ile API'leri görsel olarak tasarlamaya, oluşturmaya ve test etmeye teşvik eder.

apidog complete functionality api platform
Apidog, hepsi bir arada bir API geliştirme platformu
button

SOAP API'nizi test etmek için bir API aracı arıyorsanız, başka yere bakmayın - Apidog WSDL dosyası içe aktarmayı destekler!

WSDL Dosyasını Apidog'a İçe Aktarma

import wsdl file apidog
WSDL Dosyasını Apidog'a İçe Aktarma

İlk olarak, dikey çubuğun sol tarafında bulunan Ayarlar düğmesine tıklayın. Ardından, Veri Yönetimi bölümü altında bulunabilen Veri İçe Aktar düğmesini bulabilmelisiniz.

Son olarak, Apidog'a bir WSDL dosyası içe aktarmak üzere olduğunuzu belirtmek için WSDL'yi seçin.

edit wsdl file apidog
Apidog ile bir WSDL Dosyasını Düzenleme

WSDL dosyası başarıyla içe aktarıldıysa, WSDL dosyanızı 1. Ok ile işaret edilen resimde gösterildiği gibi solda bulacaksınız. Ardından, düzenlemeye başlamak için numaralı oklara tıklayabilirsiniz.

WSDL dosyanızı içe aktarıp hata ayıklamanızın ardından, daha fazla hata için Apidog'da test etmeye başlayabilirsiniz. WSDL dosyanızın doğru mu yoksa yanlış mı olduğundan hala emin değilseniz, daha fazla ayrıntı için WSDL dosyası örneklerine göz atın.

Sonuç

SOAP API'leri Node.js yardımıyla oluşturulabilir. Node.js'nin eşzamansız görevler için sağlam bir teknoloji olması nedeniyle (hatta Node.js'yi REST API'leriyle eşleştirebilirsiniz), SOAP API'leri web geliştirme endüstrisinde hala amaca hizmet etmektedir.

SOAP API'leri oluşturmayı planlarken, bu üç dosyaya sahip olduğunuzdan emin olmanız gerekir:

  1. WSDL dosyası: Esasen SOAP API'nizin dokümantasyonu ve ayrıntılarıdır.
  2. Sunucu tarafı kodu: İsteğin işlenebilmesini sağlamak için bir sunucu tarafı koduna ihtiyacınız vardır.
  3. İstemci tarafı kodu: İstemci tarafı kodu olmadan, sunucuya bir istek gönderemezsiniz, bu nedenle herhangi bir veri alamaz veya gönderemezsiniz.

Apidog, SOAP API'lerini test etmek, hata ayıklamak veya belgelemek isteyenler için mükemmel bir seçimdir. Tüm API yaşam döngüsü için tasarlanan özellikler ve değişikliklerle, Apidog geliştiricilerin birkaç dakika içinde basit veya karmaşık API'ler oluşturmasına yardımcı olabilir!

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin