| 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
Object = TypeVar('Object')
@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: List[TechnologyInStack] = field(default_factory=list)
@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: List[str] = field(default_factory=list)
moderator_post_types: List[str] = field(default_factory=list)
locked: Optional[datetime.datetime] = None
labels: List[LabelInfo] = field(default_factory=list)
categories: List[CategoryInfo] = field(default_factory=list)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OverviewResponse:
created: datetime.datetime = datetime.datetime(1, 1, 1)
top_users: List[UserInfo] = field(default_factory=list)
top_technologies: List[TechnologyInfo] = field(default_factory=list)
latest_tech_stacks: List[TechStackDetails] = field(default_factory=list)
popular_tech_stacks: List[TechnologyStack] = field(default_factory=list)
all_organizations: List[OrganizationInfo] = field(default_factory=list)
top_technologies_by_tier: Dict[str, List[TechnologyInfo]] = field(default_factory=dict)
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>