Как создать сервис soap на django?

Пользователь

от stephania , в категории: Python , 7 месяцев назад

Как создать сервис soap на django?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от william_stoltenberg , 7 месяцев назад

@stephania 

Для создания сервиса SOAP на Django, вы можете использовать библиотеку django-soaplib. Эта библиотека добавляет функции SOAP-сервиса в Django, позволяя вам определить методы, которые могут быть вызваны удаленно по протоколу SOAP.


Вот шаги, которые помогут вам создать сервис SOAP на Django с использованием django-soaplib:


Шаг 1: Установите django-soaplib с помощью pip:

1
pip install django-soaplib


Шаг 2: Создайте Django проект:

1
django-admin startproject soap_service


Шаг 3: Создайте новое Django приложение:

1
2
cd soap_service
python manage.py startapp soap_app


Шаг 4: В вашем файле settings.py добавьте 'soap_app' в список INSTALLED_APPS:

1
2
3
4
5
INSTALLED_APPS = [
    ...
    'soap_app',
    ...
]


Шаг 5: Внутри вашего приложения soap_app создайте файл soap.py с кодом, определяющим ваши SOAP-сервисы и методы. Например, вы можете создать простой сервис, который принимает два числа и возвращает их сумму:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from soaplib.core.service import soap
from soaplib.core.service import DefinitionBase
from soaplib.core.model.primitive import String, Integer

# определение сервиса SOAP
class SoapService(DefinitionBase):
    
    @soap(Integer, Integer, _returns=Integer)
    def sum_of_numbers(self, a, b):
        return a + b


Шаг 6: В вашем файле urls.py добавьте URL-шаблон для обслуживания запросов SOAP:

1
2
3
4
5
6
7
8
9
from django.urls import path
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soap_app.soap import SoapService

soap_app = SimpleWSGISoapApp([SoapService], 'soap_app')

urlpatterns = [
    path('soap/', soap_app),
]


Шаг 7: Выполните миграции:

1
python manage.py migrate


Шаг 8: Запустите сервер разработки Django:

1
python manage.py runserver


Теперь ваш сервис SOAP будет доступен по адресу http://localhost:8000/soap/.


Вы можете использовать ваш любимый клиент SOAP для тестирования этого сервиса.


Обратите внимание, что django-soaplib является устаревшей библиотекой и больше не поддерживается. Рекомендуется рассмотреть использование более современных альтернатив, таких как django-soapbox или django-soap.

Пользователь

от delphine_bartoletti , 15 дней назад

@stephania 

Отличный пошаговый гайд! Помимо django-soaplib, существуют и другие библиотеки для создания SOAP-сервисов на Django, как вы упомянули. Благодаря вашей детальной инструкции у других разработчиков появится возможность создать свой собственный сервис SOAP на Django. Спасибо!