TechStacks!

<back to all web services

Overview

Site
The following routes are available for this service:
All Verbs/overview
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class Overview : IGet
{
    open var reload:Boolean? = null
}

open class OverviewResponse
{
    open var created:Date? = null
    open var topUsers:ArrayList<UserInfo>? = null
    open var topTechnologies:ArrayList<TechnologyInfo>? = null
    open var latestTechStacks:ArrayList<TechStackDetails>? = null
    open var popularTechStacks:ArrayList<TechnologyStack>? = null
    open var allOrganizations:ArrayList<OrganizationInfo>? = null
    open var topTechnologiesByTier:HashMap<String,ArrayList<TechnologyInfo>>? = null
    open var responseStatus:ResponseStatus? = null
}

open class UserInfo
{
    open var userName:String? = null
    open var avatarUrl:String? = null
    open var stacksCount:Int? = null
}

open class TechnologyInfo
{
    open var tier:TechnologyTier? = null
    open var slug:String? = null
    open var name:String? = null
    open var logoUrl:String? = null
    open var stacksCount:Int? = null
}

enum class TechnologyTier
{
    ProgrammingLanguage,
    Client,
    Http,
    Server,
    Data,
    SoftwareInfrastructure,
    OperatingSystem,
    HardwareInfrastructure,
    ThirdPartyServices,
}

open class TechStackDetails : TechnologyStackBase()
{
    open var technologyChoices:ArrayList<TechnologyInStack>? = null
}

open class TechnologyStackBase
{
    open var id:Long? = null
    open var name:String? = null
    open var vendorName:String? = null
    open var description:String? = null
    open var appUrl:String? = null
    open var screenshotUrl:String? = null
    open var created:Date? = null
    open var createdBy:String? = null
    open var lastModified:Date? = null
    open var lastModifiedBy:String? = null
    open var isLocked:Boolean? = null
    open var ownerId:String? = null
    open var slug:String? = null
    @StringLength(MaximumLength=2147483647)
    open var details:String? = null

    @StringLength(MaximumLength=2147483647)
    open var detailsHtml:String? = null

    open var lastStatusUpdate:Date? = null
    open var organizationId:Int? = null
    open var commentsPostId:Long? = null
    open var viewCount:Int? = null
    open var favCount:Int? = null
}

open class TechnologyInStack : TechnologyBase()
{
    open var technologyId:Long? = null
    open var technologyStackId:Long? = null
    open var justification:String? = null
}

open class TechnologyBase
{
    open var id:Long? = null
    open var name:String? = null
    open var vendorName:String? = null
    open var vendorUrl:String? = null
    open var productUrl:String? = null
    open var logoUrl:String? = null
    open var description:String? = null
    open var created:Date? = null
    open var createdBy:String? = null
    open var lastModified:Date? = null
    open var lastModifiedBy:String? = null
    open var ownerId:String? = null
    open var slug:String? = null
    open var logoApproved:Boolean? = null
    open var isLocked:Boolean? = null
    open var tier:TechnologyTier? = null
    open var lastStatusUpdate:Date? = null
    open var organizationId:Int? = null
    open var commentsPostId:Long? = null
    open var viewCount:Int? = null
    open var favCount:Int? = null
}

open class TechnologyStack : TechnologyStackBase()
{
}

open class OrganizationInfo
{
    open var id:Int? = null
    open var name:String? = null
    open var slug:String? = null
    open var refId:Long? = null
    open var refSource:String? = null
    open var upVotes:Long? = null
    open var downVotes:Long? = null
    open var membersCount:Long? = null
    open var rank:Int? = null
    open var disableInvites:Boolean? = null
    open var lang:String? = null
    open var postTypes:ArrayList<String>? = null
    open var moderatorPostTypes:ArrayList<String>? = null
    open var locked:Date? = null
    open var labels:ArrayList<LabelInfo>? = null
    open var categories:ArrayList<CategoryInfo>? = null
}

open class LabelInfo
{
    open var slug:String? = null
    open var color:String? = null
}

open class CategoryInfo
{
    open var id:Int? = null
    open var name:String? = null
    open var slug:String? = null
}

Kotlin Overview DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

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: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	reload: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	created: 0001-01-01,
	topUsers: 
	[
		{
			userName: String,
			avatarUrl: String,
			stacksCount: 0
		}
	],
	topTechnologies: 
	[
		{
			tier: ProgrammingLanguage,
			slug: String,
			name: String,
			logoUrl: String,
			stacksCount: 0
		}
	],
	latestTechStacks: 
	[
		{
			technologyChoices: 
			[
				{
					technologyId: 0,
					technologyStackId: 0,
					justification: String,
					id: 0,
					name: String,
					vendorName: String,
					vendorUrl: String,
					productUrl: String,
					logoUrl: String,
					description: String,
					created: 0001-01-01,
					createdBy: String,
					lastModified: 0001-01-01,
					lastModifiedBy: String,
					ownerId: String,
					slug: String,
					logoApproved: False,
					isLocked: False,
					tier: ProgrammingLanguage,
					lastStatusUpdate: 0001-01-01,
					organizationId: 0,
					commentsPostId: 0,
					viewCount: 0,
					favCount: 0
				}
			],
			id: 0,
			name: String,
			vendorName: String,
			description: String,
			appUrl: String,
			screenshotUrl: String,
			created: 0001-01-01,
			createdBy: String,
			lastModified: 0001-01-01,
			lastModifiedBy: String,
			isLocked: False,
			ownerId: String,
			slug: String,
			details: String,
			detailsHtml: String,
			lastStatusUpdate: 0001-01-01,
			organizationId: 0,
			commentsPostId: 0,
			viewCount: 0,
			favCount: 0
		}
	],
	popularTechStacks: 
	[
		{
			id: 0,
			name: String,
			vendorName: String,
			description: String,
			appUrl: String,
			screenshotUrl: String,
			created: 0001-01-01,
			createdBy: String,
			lastModified: 0001-01-01,
			lastModifiedBy: String,
			isLocked: False,
			ownerId: String,
			slug: String,
			details: String,
			detailsHtml: String,
			lastStatusUpdate: 0001-01-01,
			organizationId: 0,
			commentsPostId: 0,
			viewCount: 0,
			favCount: 0
		}
	],
	allOrganizations: 
	[
		{
			id: 0,
			name: String,
			slug: String,
			refId: 0,
			refSource: String,
			upVotes: 0,
			downVotes: 0,
			membersCount: 0,
			rank: 0,
			disableInvites: False,
			lang: String,
			postTypes: 
			[
				String
			],
			moderatorPostTypes: 
			[
				String
			],
			locked: 0001-01-01,
			labels: 
			[
				{
					slug: String,
					color: String
				}
			],
			categories: 
			[
				{
					id: 0,
					name: String,
					slug: String
				}
			]
		}
	],
	topTechnologiesByTier: 
	{
		String: 
		[
			{
				tier: ProgrammingLanguage,
				slug: String,
				name: String,
				logoUrl: String,
				stacksCount: 0
			}
		]
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}