| POST | /category |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
class CategoryTypes(str, Enum):
DEPARTMENT = 'Department'
PARTY_GROUP = 'PartyGroup'
DOC_GROUP = 'DocGroup'
DOC_TYPE = 'DocType'
ISSUING_AGENCY = 'IssuingAgency'
STATUS = 'Status'
SUBJECTS = 'Subjects'
WORKFLOW = 'Workflow'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CategoryRequest:
id: Optional[int] = None
type: Optional[CategoryTypes] = None
name: Optional[str] = None
parent_id: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SearchCategoryRequest(CategoryRequest):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreateCategoryModel:
name: Optional[str] = None
description: Optional[str] = None
type: Optional[CategoryTypes] = None
is_party: bool = False
# @Ignore()
child_list: Optional[List[int]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Category(CreateCategoryModel):
id: int = 0
level: int = 0
sort_order: int = 0
last_update: Optional[datetime.datetime] = None
# @Ignore()
children: Optional[List[Category]] = None
List[any] = TypeVar('List[any]')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseResponse(Generic[List[any]], IResponseRequest):
code: int = 0
message: Optional[str] = None
data: Optional[List[Category]] = None
Python SearchCategoryRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /category HTTP/1.1
Host: etc-api.vsmlab.vn
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<SearchCategoryRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/tvpl.api.ServiceModel">
<Id xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</Id>
<Name xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">String</Name>
<ParentId xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">0</ParentId>
<Type xmlns="http://schemas.datacontract.org/2004/07/tvpl.data.Models">Department</Type>
</SearchCategoryRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<BaseResponseOfArrayOfCategoryHRAGzk1w xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/tvpl.api.ServiceModel">
<Code>0</Code>
<Data xmlns:d2p1="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
<d2p1:Category>
<d2p1:ChildList xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:int>0</d4p1:int>
</d2p1:ChildList>
<d2p1:Description>String</d2p1:Description>
<d2p1:IsParty>false</d2p1:IsParty>
<d2p1:Name>String</d2p1:Name>
<d2p1:Type>Department</d2p1:Type>
<d2p1:Children>
<d2p1:Category>
<d2p1:ChildList xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:int>0</d6p1:int>
</d2p1:ChildList>
<d2p1:Description>String</d2p1:Description>
<d2p1:IsParty>false</d2p1:IsParty>
<d2p1:Name>String</d2p1:Name>
<d2p1:Type>Department</d2p1:Type>
<d2p1:Children>
<d2p1:Category>
<d2p1:ChildList xmlns:d8p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d8p1:int>0</d8p1:int>
</d2p1:ChildList>
<d2p1:Description>String</d2p1:Description>
<d2p1:IsParty>false</d2p1:IsParty>
<d2p1:Name>String</d2p1:Name>
<d2p1:Type>Department</d2p1:Type>
<d2p1:Children i:nil="true" />
<d2p1:CreatedAt>0001-01-01T00:00:00</d2p1:CreatedAt>
<d2p1:CreatedBy>0</d2p1:CreatedBy>
<d2p1:DeletedAt>0001-01-01T00:00:00</d2p1:DeletedAt>
<d2p1:DeletedBy>0</d2p1:DeletedBy>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsDeleted>false</d2p1:IsDeleted>
<d2p1:LastUpdate>0001-01-01T00:00:00</d2p1:LastUpdate>
<d2p1:LastUpdateBy>0</d2p1:LastUpdateBy>
<d2p1:Level>0</d2p1:Level>
<d2p1:SortOrder>0</d2p1:SortOrder>
</d2p1:Category>
</d2p1:Children>
<d2p1:CreatedAt>0001-01-01T00:00:00</d2p1:CreatedAt>
<d2p1:CreatedBy>0</d2p1:CreatedBy>
<d2p1:DeletedAt>0001-01-01T00:00:00</d2p1:DeletedAt>
<d2p1:DeletedBy>0</d2p1:DeletedBy>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsDeleted>false</d2p1:IsDeleted>
<d2p1:LastUpdate>0001-01-01T00:00:00</d2p1:LastUpdate>
<d2p1:LastUpdateBy>0</d2p1:LastUpdateBy>
<d2p1:Level>0</d2p1:Level>
<d2p1:SortOrder>0</d2p1:SortOrder>
</d2p1:Category>
</d2p1:Children>
<d2p1:CreatedAt>0001-01-01T00:00:00</d2p1:CreatedAt>
<d2p1:CreatedBy>0</d2p1:CreatedBy>
<d2p1:DeletedAt>0001-01-01T00:00:00</d2p1:DeletedAt>
<d2p1:DeletedBy>0</d2p1:DeletedBy>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsDeleted>false</d2p1:IsDeleted>
<d2p1:LastUpdate>0001-01-01T00:00:00</d2p1:LastUpdate>
<d2p1:LastUpdateBy>0</d2p1:LastUpdateBy>
<d2p1:Level>0</d2p1:Level>
<d2p1:SortOrder>0</d2p1:SortOrder>
</d2p1:Category>
</Data>
<Message>String</Message>
</BaseResponseOfArrayOfCategoryHRAGzk1w>