.net Core Soap Service Example

5 min read Jun 03, 2024
.net Core Soap Service Example

Développez un service SOAP avec .NET Core : Un exemple simple

Le protocole SOAP (Simple Object Access Protocol) est un protocole standard de communication qui permet aux applications d'échanger des données sur un réseau, notamment via HTTP. .NET Core offre une implémentation puissante et flexible pour créer des services SOAP, vous permettant d'intégrer votre application avec d'autres systèmes existants.

Créer un service SOAP avec .NET Core

Dans cet exemple, nous allons créer un simple service SOAP qui expose une méthode pour additionner deux nombres.

1. Créer un projet .NET Core:

Utilisez l'interface de ligne de commande (CLI) .NET pour créer un nouveau projet Web API.

dotnet new webapi -o MySoapService

2. Installer les packages nécessaires:

Ajoutez les packages suivants à votre projet pour prendre en charge les services SOAP:

Install-Package System.ServiceModel.Http
Install-Package System.ServiceModel.Primitives

3. Créer un contrat de service:

Créez une interface qui définira le contrat de votre service SOAP. Cette interface spécifie les méthodes et les types de données utilisés.

using System.ServiceModel;

namespace MySoapService
{
    [ServiceContract]
    public interface ICalculator
    {
        [OperationContract]
        int Add(int num1, int num2);
    }
}

4. Implémenter le service:

Créez une classe qui implémente l'interface ICalculator et fournit la logique métier pour la méthode Add.

using System;
using System.ServiceModel;

namespace MySoapService
{
    public class CalculatorService : ICalculator
    {
        public int Add(int num1, int num2)
        {
            return num1 + num2;
        }
    }
}

5. Configurer le service SOAP:

Ajoutez les configurations de votre service SOAP dans le fichier Startup.cs. Configurez l'hôte Web pour écouter les requêtes SOAP sur le port souhaité.

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace MySoapService
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddServiceModelServices();
            services.AddSingleton();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", () => "Hello World!");
                endpoints.MapServiceModel(service =>
                {
                    service.AddService(serviceDescriptor =>
                    {
                        serviceDescriptor.MetadataEndpoint(
                            metadata =>
                            {
                                metadata.PolicyVersion = PolicyVersion.Policy15;
                                metadata.HttpGetEnabled = true;
                                metadata.HttpsGetEnabled = true;
                            });
                    });
                });
            });
        }
    }
}

6. Exécuter le service:

Exécutez votre application .NET Core pour démarrer le service SOAP. Il sera maintenant accessible via l'adresse URL spécifiée dans la configuration du service.

Consommer le service SOAP

Vous pouvez utiliser une variété d'outils et de librairies pour consommer votre service SOAP. Par exemple, vous pouvez utiliser un client SOAP .NET pour appeler le service et obtenir les résultats.

Exemple de client SOAP .NET:

using System;
using System.ServiceModel;
using System.ServiceModel.Channels;

namespace SoapClient
{
    class Program
    {
        static void Main(string[] args)
        {
            // Définir l'adresse du service
            string address = "http://localhost:5000/CalculatorService";

            // Créer un client
            CalculatorClient client = new CalculatorClient(new BasicHttpBinding(), new EndpointAddress(address));

            // Appeler le service
            int result = client.Add(10, 20);

            // Afficher le résultat
            Console.WriteLine($"Le résultat de l'addition est : {result}");
        }
    }

    // Interface de service
    [ServiceContract]
    public interface ICalculator
    {
        [OperationContract]
        int Add(int num1, int num2);
    }

    // Client SOAP
    public class CalculatorClient : ClientBase, ICalculator
    {
        public CalculatorClient(Binding binding, EndpointAddress address) : base(binding, address) { }

        public int Add(int num1, int num2)
        {
            return Channel.Add(num1, num2);
        }
    }
}

Conclusion

Cet exemple simple vous montre comment créer un service SOAP simple avec .NET Core. Vous pouvez adapter ce modèle pour développer des services plus complexes avec des fonctionnalités avancées. Les services SOAP sont toujours une approche courante pour l'intégration d'applications et .NET Core vous fournit un outil robuste pour les créer et les consommer.

Related Post


Featured Posts