No project description provided
Project description
FastAPI Soap
This package helps to create Soap WebServices using FastAPI (What?!?!)
Motivation
I know, FastAPI is a REST micro framework, but sometimes is needed to expose a Soap Interface on a already running FastAPI application for an legacy client/application that only supports, well, the Soap protocol...
Installation and dependencies
Only FastAPI, Pydantic and Pydantic XML are required.
First steps
from fastapi import FastAPI
from fastapi_soap.models import BodyContent
class Operands(BodyContent, tag="Operands"):
operands: list[float] = element(tag="Operand")
class Result(BodyContent, tag="Result"):
value: float
soap = SoapRouter(name='Calculator', prefix='/Calculator')
@soap.operation(
name="SumOperation",
request_model=Operands,
response_model=Result
)
def sum_operation(body: Operands = XMLBody(Operands)):
result = sum(body.operands)
return SoapResponse(
Result(value=result)
)
app = FastAPI()
app.include_router(soap)
if __name__ == '__main__':
import uvicorn
uvicorn.run("example.main:app")
(This script is complete, it should run "as is")
The WSDL is available on webservice root path for GET method.
GET http://localhost:8000/Calculator/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fastapi-soap-0.0.2.tar.gz
(7.7 kB
view hashes)
Built Distribution
Close
Hashes for fastapi_soap-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0706143c70a08c8f4681271d18447e850081fb0c132841b4b6c3e22cbed5fded |
|
MD5 | 8d794272e70f55e6d409c018292abb5d |
|
BLAKE2b-256 | 72668d93d60cb2c8f7672bf412fbc1daf6f30e2998fd73eec657d8708638d5da |