All Verbs | /overview |
---|
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
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UserInfo:
user_name: Optional[str] = None
avatar_url: Optional[str] = None
stacks_count: int = 0
class TechnologyTier(str, Enum):
PROGRAMMING_LANGUAGE = 'ProgrammingLanguage'
CLIENT = 'Client'
HTTP = 'Http'
SERVER = 'Server'
DATA = 'Data'
SOFTWARE_INFRASTRUCTURE = 'SoftwareInfrastructure'
OPERATING_SYSTEM = 'OperatingSystem'
HARDWARE_INFRASTRUCTURE = 'HardwareInfrastructure'
THIRD_PARTY_SERVICES = 'ThirdPartyServices'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TechnologyInfo:
tier: Optional[TechnologyTier] = None
slug: Optional[str] = None
name: Optional[str] = None
logo_url: Optional[str] = None
stacks_count: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TechnologyStackBase:
id: int = 0
name: Optional[str] = None
vendor_name: Optional[str] = None
description: Optional[str] = None
app_url: Optional[str] = None
screenshot_url: Optional[str] = None
created: datetime.datetime = datetime.datetime(1, 1, 1)
created_by: Optional[str] = None
last_modified: datetime.datetime = datetime.datetime(1, 1, 1)
last_modified_by: Optional[str] = None
is_locked: bool = False
owner_id: Optional[str] = None
slug: Optional[str] = None
# @StringLength(2147483647)
details: Optional[str] = None
# @StringLength(2147483647)
details_html: Optional[str] = None
last_status_update: Optional[datetime.datetime] = None
organization_id: Optional[int] = None
comments_post_id: Optional[int] = None
view_count: int = 0
fav_count: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TechnologyBase:
id: int = 0
name: Optional[str] = None
vendor_name: Optional[str] = None
vendor_url: Optional[str] = None
product_url: Optional[str] = None
logo_url: Optional[str] = None
description: Optional[str] = None
created: datetime.datetime = datetime.datetime(1, 1, 1)
created_by: Optional[str] = None
last_modified: datetime.datetime = datetime.datetime(1, 1, 1)
last_modified_by: Optional[str] = None
owner_id: Optional[str] = None
slug: Optional[str] = None
logo_approved: bool = False
is_locked: bool = False
tier: Optional[TechnologyTier] = None
last_status_update: Optional[datetime.datetime] = None
organization_id: Optional[int] = None
comments_post_id: Optional[int] = None
view_count: int = 0
fav_count: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TechnologyInStack(TechnologyBase):
technology_id: int = 0
technology_stack_id: int = 0
justification: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TechStackDetails(TechnologyStackBase):
technology_choices: Optional[List[TechnologyInStack]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TechnologyStack(TechnologyStackBase):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LabelInfo:
slug: Optional[str] = None
color: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CategoryInfo:
id: int = 0
name: Optional[str] = None
slug: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OrganizationInfo:
id: int = 0
name: Optional[str] = None
slug: Optional[str] = None
ref_id: Optional[int] = None
ref_source: Optional[str] = None
up_votes: Optional[int] = None
down_votes: Optional[int] = None
members_count: int = 0
rank: int = 0
disable_invites: Optional[bool] = None
lang: Optional[str] = None
post_types: Optional[List[str]] = None
moderator_post_types: Optional[List[str]] = None
locked: Optional[datetime.datetime] = None
labels: Optional[List[LabelInfo]] = None
categories: Optional[List[CategoryInfo]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OverviewResponse:
created: datetime.datetime = datetime.datetime(1, 1, 1)
top_users: Optional[List[UserInfo]] = None
top_technologies: Optional[List[TechnologyInfo]] = None
latest_tech_stacks: Optional[List[TechStackDetails]] = None
popular_tech_stacks: Optional[List[TechnologyStack]] = None
all_organizations: Optional[List[OrganizationInfo]] = None
top_technologies_by_tier: Optional[Dict[str, List[TechnologyInfo]]] = None
response_status: Optional[ResponseStatus] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Overview(IGet):
reload: bool = False
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 /overview HTTP/1.1
Host: techstacks.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<Overview xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel">
<Reload>false</Reload>
</Overview>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <OverviewResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel"> <AllOrganizations> <OrganizationInfo> <Categories> <CategoryInfo> <Id>0</Id> <Name>String</Name> <Slug>String</Slug> </CategoryInfo> </Categories> <DisableInvites>false</DisableInvites> <DownVotes>0</DownVotes> <Id>0</Id> <Labels> <LabelInfo> <Color>String</Color> <Slug>String</Slug> </LabelInfo> </Labels> <Lang>String</Lang> <Locked>0001-01-01T00:00:00</Locked> <MembersCount>0</MembersCount> <ModeratorPostTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:string>String</d4p1:string> </ModeratorPostTypes> <Name>String</Name> <PostTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:string>String</d4p1:string> </PostTypes> <Rank>0</Rank> <RefId>0</RefId> <RefSource>String</RefSource> <Slug>String</Slug> <UpVotes>0</UpVotes> </OrganizationInfo> </AllOrganizations> <Created>0001-01-01T00:00:00</Created> <LatestTechStacks> <TechStackDetails> <AppUrl xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</AppUrl> <CommentsPostId xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</CommentsPostId> <Created xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0001-01-01T00:00:00</Created> <CreatedBy xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</CreatedBy> <Description xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Description> <Details xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Details> <DetailsHtml xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</DetailsHtml> <FavCount xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</FavCount> <Id xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</Id> <IsLocked xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">false</IsLocked> <LastModified xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0001-01-01T00:00:00</LastModified> <LastModifiedBy xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</LastModifiedBy> <LastStatusUpdate xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0001-01-01T00:00:00</LastStatusUpdate> <Name xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Name> <OrganizationId xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</OrganizationId> <OwnerId xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</OwnerId> <ScreenshotUrl xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</ScreenshotUrl> <Slug xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Slug> <VendorName xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</VendorName> <ViewCount xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</ViewCount> <TechnologyChoices> <TechnologyInStack> <CommentsPostId xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</CommentsPostId> <Created xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0001-01-01T00:00:00</Created> <CreatedBy xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</CreatedBy> <Description xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Description> <FavCount xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</FavCount> <Id xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</Id> <IsLocked xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">false</IsLocked> <LastModified xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0001-01-01T00:00:00</LastModified> <LastModifiedBy xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</LastModifiedBy> <LastStatusUpdate xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0001-01-01T00:00:00</LastStatusUpdate> <LogoApproved xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">false</LogoApproved> <LogoUrl xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</LogoUrl> <Name xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Name> <OrganizationId xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</OrganizationId> <OwnerId xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</OwnerId> <ProductUrl xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</ProductUrl> <Slug xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</Slug> <Tier xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">ProgrammingLanguage</Tier> <VendorName xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</VendorName> <VendorUrl xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">String</VendorUrl> <ViewCount xmlns="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types">0</ViewCount> <Justification>String</Justification> <TechnologyId>0</TechnologyId> <TechnologyStackId>0</TechnologyStackId> </TechnologyInStack> </TechnologyChoices> </TechStackDetails> </LatestTechStacks> <PopularTechStacks xmlns:d2p1="http://schemas.datacontract.org/2004/07/TechStacks.ServiceModel.Types"> <d2p1:TechnologyStack> <d2p1:AppUrl>String</d2p1:AppUrl> <d2p1:CommentsPostId>0</d2p1:CommentsPostId> <d2p1:Created>0001-01-01T00:00:00</d2p1:Created> <d2p1:CreatedBy>String</d2p1:CreatedBy> <d2p1:Description>String</d2p1:Description> <d2p1:Details>String</d2p1:Details> <d2p1:DetailsHtml>String</d2p1:DetailsHtml> <d2p1:FavCount>0</d2p1:FavCount> <d2p1:Id>0</d2p1:Id> <d2p1:IsLocked>false</d2p1:IsLocked> <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified> <d2p1:LastModifiedBy>String</d2p1:LastModifiedBy> <d2p1:LastStatusUpdate>0001-01-01T00:00:00</d2p1:LastStatusUpdate> <d2p1:Name>String</d2p1:Name> <d2p1:OrganizationId>0</d2p1:OrganizationId> <d2p1:OwnerId>String</d2p1:OwnerId> <d2p1:ScreenshotUrl>String</d2p1:ScreenshotUrl> <d2p1:Slug>String</d2p1:Slug> <d2p1:VendorName>String</d2p1:VendorName> <d2p1:ViewCount>0</d2p1:ViewCount> </d2p1:TechnologyStack> </PopularTechStacks> <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types"> <d2p1:ErrorCode>String</d2p1:ErrorCode> <d2p1:Message>String</d2p1:Message> <d2p1:StackTrace>String</d2p1:StackTrace> <d2p1:Errors> <d2p1:ResponseError> <d2p1:ErrorCode>String</d2p1:ErrorCode> <d2p1:FieldName>String</d2p1:FieldName> <d2p1:Message>String</d2p1:Message> <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:KeyValueOfstringstring> <d5p1:Key>String</d5p1:Key> <d5p1:Value>String</d5p1:Value> </d5p1:KeyValueOfstringstring> </d2p1:Meta> </d2p1:ResponseError> </d2p1:Errors> <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d3p1:KeyValueOfstringstring> <d3p1:Key>String</d3p1:Key> <d3p1:Value>String</d3p1:Value> </d3p1:KeyValueOfstringstring> </d2p1:Meta> </ResponseStatus> <TopTechnologies> <TechnologyInfo> <LogoUrl>String</LogoUrl> <Name>String</Name> <Slug>String</Slug> <StacksCount>0</StacksCount> <Tier>ProgrammingLanguage</Tier> </TechnologyInfo> </TopTechnologies> <TopTechnologiesByTier xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfstringArrayOfTechnologyInfowgYcwPx1> <d2p1:Key>String</d2p1:Key> <d2p1:Value> <TechnologyInfo> <LogoUrl>String</LogoUrl> <Name>String</Name> <Slug>String</Slug> <StacksCount>0</StacksCount> <Tier>ProgrammingLanguage</Tier> </TechnologyInfo> </d2p1:Value> </d2p1:KeyValueOfstringArrayOfTechnologyInfowgYcwPx1> </TopTechnologiesByTier> <TopUsers> <UserInfo> <AvatarUrl>String</AvatarUrl> <StacksCount>0</StacksCount> <UserName>String</UserName> </UserInfo> </TopUsers> </OverviewResponse>