TechStacks!

<back to all web services

Overview

Site
The following routes are available for this service:
All Verbs/overview
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using TechStacks.ServiceModel;
using TechStacks.ServiceModel.Types;

namespace TechStacks.ServiceModel
{
    public partial class CategoryInfo
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Slug { get; set; }
    }

    public partial class LabelInfo
    {
        public virtual string Slug { get; set; }
        public virtual string Color { get; set; }
    }

    public partial class OrganizationInfo
    {
        public OrganizationInfo()
        {
            PostTypes = new string[]{};
            ModeratorPostTypes = new string[]{};
            Labels = new List<LabelInfo>{};
            Categories = new List<CategoryInfo>{};
        }

        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Slug { get; set; }
        public virtual long? RefId { get; set; }
        public virtual string RefSource { get; set; }
        public virtual long? UpVotes { get; set; }
        public virtual long? DownVotes { get; set; }
        public virtual long MembersCount { get; set; }
        public virtual int Rank { get; set; }
        public virtual bool? DisableInvites { get; set; }
        public virtual string Lang { get; set; }
        public virtual string[] PostTypes { get; set; }
        public virtual string[] ModeratorPostTypes { get; set; }
        public virtual DateTime? Locked { get; set; }
        public virtual List<LabelInfo> Labels { get; set; }
        public virtual List<CategoryInfo> Categories { get; set; }
    }

    public partial class Overview
        : IGet
    {
        public virtual bool Reload { get; set; }
    }

    public partial class OverviewResponse
    {
        public OverviewResponse()
        {
            TopUsers = new List<UserInfo>{};
            TopTechnologies = new List<TechnologyInfo>{};
            LatestTechStacks = new List<TechStackDetails>{};
            PopularTechStacks = new List<TechnologyStack>{};
            AllOrganizations = new List<OrganizationInfo>{};
            TopTechnologiesByTier = new Dictionary<string, List<TechnologyInfo>>{};
        }

        public virtual DateTime Created { get; set; }
        public virtual List<UserInfo> TopUsers { get; set; }
        public virtual List<TechnologyInfo> TopTechnologies { get; set; }
        public virtual List<TechStackDetails> LatestTechStacks { get; set; }
        public virtual List<TechnologyStack> PopularTechStacks { get; set; }
        public virtual List<OrganizationInfo> AllOrganizations { get; set; }
        public virtual Dictionary<string, List<TechnologyInfo>> TopTechnologiesByTier { get; set; }
        public virtual ResponseStatus ResponseStatus { get; set; }
    }

    public partial class TechnologyInfo
    {
        public virtual TechnologyTier Tier { get; set; }
        public virtual string Slug { get; set; }
        public virtual string Name { get; set; }
        public virtual string LogoUrl { get; set; }
        public virtual int StacksCount { get; set; }
    }

    public partial class TechnologyInStack
        : TechnologyBase
    {
        public virtual long TechnologyId { get; set; }
        public virtual long TechnologyStackId { get; set; }
        public virtual string Justification { get; set; }
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string VendorUrl { get; set; }
        public virtual string ProductUrl { get; set; }
        public virtual string LogoUrl { get; set; }
        public virtual string Description { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        public virtual bool LogoApproved { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual TechnologyTier Tier { get; set; }
        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class TechStackDetails
        : TechnologyStackBase
    {
        public TechStackDetails()
        {
            TechnologyChoices = new List<TechnologyInStack>{};
        }

        public virtual List<TechnologyInStack> TechnologyChoices { get; set; }
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string Description { get; set; }
        public virtual string AppUrl { get; set; }
        public virtual string ScreenshotUrl { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        [StringLength(int.MaxValue)]
        public virtual string Details { get; set; }

        [StringLength(int.MaxValue)]
        public virtual string DetailsHtml { get; set; }

        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class UserInfo
    {
        public virtual string UserName { get; set; }
        public virtual string AvatarUrl { get; set; }
        public virtual int StacksCount { get; set; }
    }

}

namespace TechStacks.ServiceModel.Types
{
    public partial class TechnologyBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string VendorUrl { get; set; }
        public virtual string ProductUrl { get; set; }
        public virtual string LogoUrl { get; set; }
        public virtual string Description { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        public virtual bool LogoApproved { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual TechnologyTier Tier { get; set; }
        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class TechnologyStack
        : TechnologyStackBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string Description { get; set; }
        public virtual string AppUrl { get; set; }
        public virtual string ScreenshotUrl { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        [StringLength(int.MaxValue)]
        public virtual string Details { get; set; }

        [StringLength(int.MaxValue)]
        public virtual string DetailsHtml { get; set; }

        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

    public partial class TechnologyStackBase
    {
        public virtual long Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string VendorName { get; set; }
        public virtual string Description { get; set; }
        public virtual string AppUrl { get; set; }
        public virtual string ScreenshotUrl { get; set; }
        public virtual DateTime Created { get; set; }
        public virtual string CreatedBy { get; set; }
        public virtual DateTime LastModified { get; set; }
        public virtual string LastModifiedBy { get; set; }
        public virtual bool IsLocked { get; set; }
        public virtual string OwnerId { get; set; }
        public virtual string Slug { get; set; }
        [StringLength(int.MaxValue)]
        public virtual string Details { get; set; }

        [StringLength(int.MaxValue)]
        public virtual string DetailsHtml { get; set; }

        public virtual DateTime? LastStatusUpdate { get; set; }
        public virtual int? OrganizationId { get; set; }
        public virtual long? CommentsPostId { get; set; }
        public virtual int ViewCount { get; set; }
        public virtual int FavCount { get; set; }
    }

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

}

C# 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
		}
	}
}