Apistry.Samples.Service.Api.Documentation.UsersDocumentation.Build C# (CSharp) Method

Build() public method

public Build ( WebApiDocumentationMetadataBuilder metadata ) : void
metadata WebApiDocumentationMetadataBuilder
return void
        public void Build(WebApiDocumentationMetadataBuilder metadata)
        {
            metadata
                .DocumentDto<UserDto>("System user")
                    .For(u => u.Id)
                        .Description("A unique identifier for a user used by the application.")
                        .Example(53)
                    .For(u => u.FirstName)
                        .Description("A user's first name.")
                        .Example("Daniel")
                    .For(u => u.LastName)
                        .Description("A user's last name.")
                        .Example("Gioulakis")
                    .For(u => u.Address)
                    .For(u => u.Profile)
                    .For(u => u.Friends)
                .DocumentDto<AddressDto>("A user's address.")
                    .For(a => a.AddressLine1)
                        .Description("The street number.")
                        .Example("150 E Robinson St")
                    .For(a => a.City)
                        .Description("The city name.")
                        .Example("Orlando")
                    .For(a => a.State)
                        .Description("The state.")
                        .Example("Florida")
                    .For(a => a.ZipCode)
                        .Description("The zip code.")
                        .Example("32801")
                    .For(a => a.Country)
                        .Description("The country.")
                        .Example("United States")
                .DocumentDto<ProfileDto>("A user's profile.")
                    .For(p => p.About)
                        .Description("About user profile section.")
                        .Example("A developer originally from South Florida.")
                    .For(p => p.Picture)
                        .Description("The profile picture.")

                .DocumentController<UsersController>()
                    .Resource("Users")
                    .Summary("User-related API operations.")
                    .DescribeAction(c => c.DeleteUser(default(int)))
                        .Name("Delete a User")
                        .Summary("Delete a user and all associated data.")
                        .DescribeParameter<int>("userId", "The user's identity.")
                        .Returns(HttpStatusCode.NoContent)
                    .DescribeAction(c => c.GetUsers())
                        .Name("Get all Users")
                        .Summary("Returns all user's for your site.")
                        .Returns<IEnumerable<UserDto>>()
                    .DescribeAction(c => c.GetUser(default(int)))
                        .Name("Get a User")
                        .Summary("Gets a specific user.")
                        .DescribeParameter<int>("userId", "The user's identity.")
                        .Returns<UserDto>()
                    .DescribeAction(c => c.PatchUser(default(int), default(PatchRequest<UserDto>)))
                        .Name("Modify a User")
                        .Summary("Modify specific attributes about a user.")
                        .DescribeParameter<int>("userId", "The user's identity.")
                        .DescribeParameter<PatchRequest<UserDto>>("patchRequest", "The key-value user properties to patch.")
                        .Returns(HttpStatusCode.NoContent)
                    .DescribeAction(c => c.PostUser(default(UserDto)))
                        .Name("Create a new user account.")
                        .Summary(@"This is will create a new user with associated profile information.")
                        .DescribeParameter<UserDto>("userDto")
                        .Returns(HttpStatusCode.Created)
                        .Alert("This endpoint is only accessible by administrators.")
                        .Information("Important information regarding this endpoint.")
                    .Build();
        }
UsersDocumentation