Python Code

At the following page you can take a look at the generated code, the code is based on this TypeAPI specification. This is only a demo to give you a first insight, for live examples feel free to login at the backend and use the live generator.

client.py

"""
Client automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

import requests
import sdkgen
from requests import RequestException
from typing import List
from typing import Dict
from typing import Any
from urllib.parse import parse_qs

from .test_tag import TestTag

class Client(sdkgen.ClientAbstract):
    def __init__(self, base_url: str, credentials: sdkgen.CredentialsInterface):
        super().__init__(base_url, credentials)

    def test(self) -> TestTag:
        return TestTag(
            self.http_client,
            self.parser
        )




    @staticmethod
    def buildAnonymous(baseUrl: str):
        return Client(baseUrl, sdkgen.Anonymous())

error.py

"""
error automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

from pydantic import BaseModel, Field, GetCoreSchemaHandler, Tag
from pydantic_core import CoreSchema, core_schema
from typing import Any, Dict, Generic, List, Optional, TypeVar, Annotated, Union


class Error(BaseModel):
    success: Optional[bool] = Field(default=None, alias="success")
    message: Optional[str] = Field(default=None, alias="message")
    pass


error_exception.py

"""
ErrorException automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

import sdkgen
from typing import Dict
from typing import Any

from .error import Error

class ErrorException(sdkgen.KnownStatusCodeException):
    payload: Error = None

    def __init__(self, payload):
        self.payload = payload

    def get_payload(self) -> Error:
        return self.payload

hello_world.py

"""
hello_world automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

from pydantic import BaseModel, Field, GetCoreSchemaHandler, Tag
from pydantic_core import CoreSchema, core_schema
from typing import Any, Dict, Generic, List, Optional, TypeVar, Annotated, Union


class HelloWorld(BaseModel):
    message: Optional[str] = Field(default=None, alias="message")
    pass


response.py

"""
response automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

from pydantic import BaseModel, Field, GetCoreSchemaHandler, Tag
from pydantic_core import CoreSchema, core_schema
from typing import Any, Dict, Generic, List, Optional, TypeVar, Annotated, Union


class Response(BaseModel):
    success: Optional[bool] = Field(default=None, alias="success")
    message: Optional[str] = Field(default=None, alias="message")
    pass


test_tag.py

"""
TestTag automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

import requests
import sdkgen
from requests import RequestException
from typing import List
from typing import Dict
from typing import Any
from urllib.parse import parse_qs

from .error import Error
from .error_exception import ErrorException
from .hello_world import HelloWorld
from .response import Response
from .todo import Todo
from .todos import Todos

class TestTag(sdkgen.TagAbstract):
    def __init__(self, http_client: requests.Session, parser: sdkgen.Parser):
        super().__init__(http_client, parser)


    def get_hello(self) -> HelloWorld:
        """
        Returns a hello world message
        """
        try:
            path_params = {}

            query_params = {}

            query_struct_names = []

            url = self.parser.url('/hello/world', path_params)

            options = {}
            options['headers'] = {}
            options['params'] = self.parser.query(query_params, query_struct_names)



            response = self.http_client.request('GET', url, **options)

            if response.status_code >= 200 and response.status_code < 300:
                data = HelloWorld.model_validate_json(json_data=response.content)

                return data

            statusCode = response.status_code
            raise sdkgen.UnknownStatusCodeException('The server returned an unknown status code: ' + str(statusCode))
        except RequestException as e:
            raise sdkgen.ClientException('An unknown error occurred: ' + str(e))

    def get_entries(self, start_index: int, count: int) -> Todos:
        """
        Returns available todo entries
        """
        try:
            path_params = {}

            query_params = {}
            query_params['startIndex'] = start_index
            query_params['count'] = count

            query_struct_names = []

            url = self.parser.url('/todo', path_params)

            options = {}
            options['headers'] = {}
            options['params'] = self.parser.query(query_params, query_struct_names)



            response = self.http_client.request('GET', url, **options)

            if response.status_code >= 200 and response.status_code < 300:
                data = Todos.model_validate_json(json_data=response.content)

                return data

            statusCode = response.status_code
            raise sdkgen.UnknownStatusCodeException('The server returned an unknown status code: ' + str(statusCode))
        except RequestException as e:
            raise sdkgen.ClientException('An unknown error occurred: ' + str(e))

    def insert(self, payload: Todo) -> Response:
        """
        Inserts a new todo entry
        """
        try:
            path_params = {}

            query_params = {}

            query_struct_names = []

            url = self.parser.url('/todo', path_params)

            options = {}
            options['headers'] = {}
            options['params'] = self.parser.query(query_params, query_struct_names)

            options['json'] = payload.model_dump(by_alias=True)

            options['headers']['Content-Type'] = 'application/json'

            response = self.http_client.request('POST', url, **options)

            if response.status_code >= 200 and response.status_code < 300:
                data = Response.model_validate_json(json_data=response.content)

                return data

            statusCode = response.status_code
            raise sdkgen.UnknownStatusCodeException('The server returned an unknown status code: ' + str(statusCode))
        except RequestException as e:
            raise sdkgen.ClientException('An unknown error occurred: ' + str(e))

    def throw_exception(self) -> HelloWorld:
        """
        Returns a hello world message
        """
        try:
            path_params = {}

            query_params = {}

            query_struct_names = []

            url = self.parser.url('/exception', path_params)

            options = {}
            options['headers'] = {}
            options['params'] = self.parser.query(query_params, query_struct_names)



            response = self.http_client.request('GET', url, **options)

            if response.status_code >= 200 and response.status_code < 300:
                data = HelloWorld.model_validate_json(json_data=response.content)

                return data

            statusCode = response.status_code
            if statusCode == 500:
                data = Error.model_validate_json(json_data=response.content)

                raise ErrorException(data)

            raise sdkgen.UnknownStatusCodeException('The server returned an unknown status code: ' + str(statusCode))
        except RequestException as e:
            raise sdkgen.ClientException('An unknown error occurred: ' + str(e))



todo.py

"""
todo automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

from pydantic import BaseModel, Field, GetCoreSchemaHandler, Tag
from pydantic_core import CoreSchema, core_schema
from typing import Any, Dict, Generic, List, Optional, TypeVar, Annotated, Union


class Todo(BaseModel):
    title: Optional[str] = Field(default=None, alias="title")
    pass


todos.py

"""
todos automatically generated by SDKgen please do not edit this file manually
https://sdkgen.app
"""

from pydantic import BaseModel, Field, GetCoreSchemaHandler, Tag
from pydantic_core import CoreSchema, core_schema
from typing import Any, Dict, Generic, List, Optional, TypeVar, Annotated, Union
from .todo import Todo


class Todos(BaseModel):
    total_results: Optional[int] = Field(default=None, alias="totalResults")
    start_index: Optional[int] = Field(default=None, alias="startIndex")
    items_per_page: Optional[int] = Field(default=None, alias="itemsPerPage")
    entry: Optional[List[Todo]] = Field(default=None, alias="entry")
    pass


part of the Apioo-Project