100% found this document useful (20 votes)
164 views99 pages

Expert ASP NET Web API 2 For MVC Developers 1st Edition Adam Freeman Updated 2025

The document discusses the book 'Expert ASP.NET Web API 2 for MVC Developers' by Adam Freeman, which provides a comprehensive guide for creating RESTful applications using ASP.NET Web API. It outlines the book's structure, including three main parts: getting ready, results and parameters, and dispatching requests, while emphasizing the importance of examples for learning. Additionally, it mentions the required software and tools for development, including Visual Studio and Google Chrome.

Uploaded by

arisagal9091
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (20 votes)
164 views99 pages

Expert ASP NET Web API 2 For MVC Developers 1st Edition Adam Freeman Updated 2025

The document discusses the book 'Expert ASP.NET Web API 2 for MVC Developers' by Adam Freeman, which provides a comprehensive guide for creating RESTful applications using ASP.NET Web API. It outlines the book's structure, including three main parts: getting ready, results and parameters, and dispatching requests, while emphasizing the importance of examples for learning. Additionally, it mentions the required software and tools for development, including Visual Studio and Google Chrome.

Uploaded by

arisagal9091
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 99

Expert ASP NET Web API 2 for MVC developers 1st

Edition Adam Freeman pdf download

Available at ebookgate.com
https://ebookgate.com/product/expert-asp-net-web-api-2-for-mvc-
developers-1st-edition-adam-freeman/

★★★★★
4.6 out of 5.0 (65 reviews )

Get Your PDF Now


Expert ASP NET Web API 2 for MVC developers 1st Edition Adam
Freeman

EBOOK

Available Formats

■ PDF eBook Study Guide Ebook

EXCLUSIVE 2025 ACADEMIC EDITION – LIMITED RELEASE

Available Instantly Access Library


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

Pro ASP NET Web API HTTP Web Services in ASP NET 1st
Edition Tugberk Ugurlu

https://ebookgate.com/product/pro-asp-net-web-api-http-web-services-
in-asp-net-1st-edition-tugberk-ugurlu/

ebookgate.com

Professional ASP NET MVC 2 1st Edition Jon Galloway

https://ebookgate.com/product/professional-asp-net-mvc-2-1st-edition-
jon-galloway/

ebookgate.com

Applied ASP NET 4 in Context 1st Edition Adam Freeman

https://ebookgate.com/product/applied-asp-net-4-in-context-1st-
edition-adam-freeman/

ebookgate.com

Beginning jQuery 2 for ASP NET Developers 1st Edition


Bipin Joshi

https://ebookgate.com/product/beginning-jquery-2-for-asp-net-
developers-1st-edition-bipin-joshi/

ebookgate.com
ASP NET MVC 2 in Action 2nd Edition Jeffrey Palermo

https://ebookgate.com/product/asp-net-mvc-2-in-action-2nd-edition-
jeffrey-palermo/

ebookgate.com

What s New in ASP NET MVC 2 1st Edition Simone Chiaretta

https://ebookgate.com/product/what-s-new-in-asp-net-mvc-2-1st-edition-
simone-chiaretta/

ebookgate.com

Pro ASP NET for SQL Server High Performance Data Access
for Web Developers 1st Edition Brennan Stehling

https://ebookgate.com/product/pro-asp-net-for-sql-server-high-
performance-data-access-for-web-developers-1st-edition-brennan-
stehling/
ebookgate.com

Bootstrap for ASP NET MVC Second Edition Pieter Van Der
Westhuizen

https://ebookgate.com/product/bootstrap-for-asp-net-mvc-second-
edition-pieter-van-der-westhuizen/

ebookgate.com

Test Drive ASP NET MVC 1st Edition Jonathan Mccracken

https://ebookgate.com/product/test-drive-asp-net-mvc-1st-edition-
jonathan-mccracken/

ebookgate.com
For your convenience Apress has placed some of the front
matter material after the index. Please use the Bookmarks
and Contents at a Glance links to access them.
Contents at a Glance

About the Author ............................................................................................................. xxiii


About the Technical Reviewer .......................................................................................... xxv

N Part 1: Getting Ready .................................................................................... 1


N Chapter 1: Getting Readys .................................................................................................3
N Chapter 2: Your First Web API Application ........................................................................9
N Chapter 3: Essential Techniques......................................................................................35
N Chapter 4: Understanding HTTP Web Services ................................................................57
N Chapter 5: SportsStore: Preparation ...............................................................................69
N Chapter 6: SportsStore: A RESTful Application ................................................................99
N Chapter 7: SportsStore: Creating the Clients .................................................................131
N Chapter 8: SportsStore: Deployment .............................................................................169

N Part 2: Results and Parameters ................................................................ 179


N Chapter 9: The Anatomy of ASP.NET Web API ................................................................181
N Chapter 10: Creating and Configuring a Web API Application .......................................191
N Chapter 11: Action Method Results ...............................................................................215
N Chapter 12: Creating Media Type Formatters ................................................................243
N Chapter 13: Using the Built-in Media Formatters ..........................................................267
N Chapter 14: Understanding Parameter and Model Binding ...........................................297
N Chapter 15: Binding Simple Data Types.........................................................................325
N Chapter 16: Binding Complex Data Types Part I ............................................................351

v
N CONTENTS AT A GLANCE

N Chapter 17: Binding Complex Data Types Part II ...........................................................389


N Chapter 18: Model Validation ........................................................................................427

N Part 3: Dispatching Requests ................................................................... 449


N Chapter 19: Dispatching Requests ................................................................................451
N Chapter 20: URL Routing: Part I .....................................................................................483
N Chapter 21: URL Routing: Part II ....................................................................................511
N Chapter 22: Controllers and Actions..............................................................................535
N Chapter 23: Filters Part I ...............................................................................................567
N Chapter 24: Filters Part II ..............................................................................................599
N Chapter 25: Error Handling ............................................................................................623
N Chapter 26: Using OWIN.................................................................................................645

Index .................................................................................................................................651

vi
PART I

Getting Ready
CHAPTER 1

Getting Readys

Web API 2 is the latest evolution of Microsoft’s web services toolkit, which allows you to create RESTful applications
built on the ASP.NET platform. It provides a standards-based approach and a high-productivity development model
that makes it easy to deliver services to a wide range of clients, including mobile devices.
In this book, I take you right from creating your first Web API web services to the most advanced techniques
and features. No prior knowledge of HTTP web services or Web API is required. I start with the basics and explain
everything you need to know. In short, this book will give you expert insight and understanding of how to create,
customize, and deploy complex, flexible, and robust HTTP web services.
Web services don’t exist in isolation, so I also show you how to write browser-based single-page applications to
consume them. I demonstrate how these clients influence the way that Web API web services respond and how you
can adapt your web service to different client types.

What Do You Need to Know?


You should be familiar with using the ASP.NET MVC framework to create web applications. This means you are able
to use Visual Studio to write C# classes and know how to use Razor and HTML to create views. The term Expert in the
title refers to the degree of depth that I cover in this book, and you don’t need any knowledge of Web API or HTTP web
services; however, if you don’t know how to use ASP.NET MVC, then you will struggle to follow many of the examples.
If you want to brush up on your knowledge of MVC, then read my Pro ASP.NET MVC 5 and Pro ASP.NET MVC
Platform books, both published by Apress.

What Does Expert Mean?


This book is for programmers who want to understand every aspect of web services development using ASP.NET Web
API. Or, put another way, you want to be an expert in Web API. I dig deeply into the details of how Web API works
behind the scenes in this book and give you a warts-and-all view of how Web API can be used to create sophisticated
and secure RESTful web services. You don’t have to know anything about Web API or HTTP web services before you
start. I build on your existing knowledge of the MVC framework to give you all the information you need.

What Is the Structure of This Book?


This book is split into three parts, each of which covers a set of related topics.

3
CHAPTER 1 N GETTING READYS

Part 1: Getting Ready


Part 1 of this book provides the information you need to get ready for the rest of the book. It includes this chapter and
a primer for the techniques you will need to follow the examples in this chapter. I also show you how to build your first
web service and single-page client and take you through the process of building a more realistic application, called
SportsStore.

Part 2: Results and Parameters


Part 2 of this book focuses on the aspect of Web API that you will spend most of your time on during your first real
projects: the data sent from clients and the responses that you produce in return. I explain how to create different
kinds of HTTP responses using Web API, how to master the data binding process that Web API uses to process request
data, and how to ensure that the data you receive from clients is valid.

Part 3: Dispatching Requests


Part 3 of this book explains how Web API dispatches HTTP requests from the moment they arrive from the client
until the response is generated. I describe all of the steps that a request goes through and show you how to configure
and customize just about every class and interface that Web API relies on to get fine-grain control over how your
web services operate. I show you how Web API uses the URL routing system to support RESTful web services, how
controllers and action methods are selected, and how to deal with errors and cross-cutting concerns. Many of
these techniques are similar to the ones you know from MVC framework development, but Web API uses its own
namespaces and classes and has a different approach than the one you are used to using.

Are There Lots of Examples?


There are loads of examples. The best way to learn Web API is by example, and I have packed as many of them as I can
into this book. To maximize the number of examples in this book, I have adopted a simple convention to avoid listing
the contents of files over and over again. The first time I use a file in a chapter, I’ll list the complete contents, just as I
have in Listing 1-1.

Listing 1-1. A Complete Example Document


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace SportsStore {
public static class WebApiConfig {
public static void Register(HttpConfiguration config) {

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

4
CHAPTER 1 N GETTING READYS

config.Formatters.Remove(config.Formatters.XmlFormatter);
}
}
}

This listing is taken from Chapter 6. Don’t worry about what it does; just be aware that the first time I use a file
in each chapter there will be complete listing, similar to Listing 1-1 shown here. For the second and subsequent
examples, I show you just the elements that change, in a partial listing. You can spot a partial the listing because it
starts and ends with ellipsis (...), as shown in Listing 1-2.

Listing 1-2. A Partial Listing


...
public Product GetProduct(int id) {
Product result = Repository.Products.Where(p => p.Id == id).FirstOrDefault();
if (result == null) {
throw new HttpResponseException(HttpStatusCode.BadRequest);
} else {
return result;
}
}
...

This is a subsequent listing from Chapter 6. You can see that just the GetProduct method is shown and that I
have highlighted a number of statements. This is how I draw your attention to the part of the example that shows the
feature or technique I am describing. In a partial listing like this, only those parts shown have changed from the full
listing earlier in the chapter.
This convention lets me pack in more examples, but it does mean it can be hard to locate a specific technique.
To this end, all of the chapters in which I describe Web API features in Parts 2 and 3 begin with a summary table that
describes the techniques contained in the chapter and the listings that demonstrate how they are used.

Where Can You Get the Example Code?


You can download all of the examples for all of the chapters in this book from www.apress.com. The download is
available without charge and includes all of the supporting resources that are required to re-create the examples
without having to type them in. You don’t have to download the code, but it is the easiest way of experimenting with
the examples and cutting and pasting them into your own projects.
If you do want to re-create the examples from scratch, then you will find that every chapter contains detailed
listings of all the files I create and modify. I never refer you to an external file or hand-wave about leaving the rest of
the example as an exercise; every detail you need to re-create every example is contained within this book.

How Do You Set Up a Development Environment?


The most important software you need for this book is Visual Studio 2013, which contains everything you need
to get started, including a built-in application server for running and debugging Web API applications, an
administration-free edition of SQL Server for developing database-driven applications, and, of course, a code
editor compiler and debugger.

5
CHAPTER 1 N GETTING READYS

Getting Visual Studio


There are several editions of Visual Studio, but I will be using the one that Microsoft makes available free of charge,
called Visual Studio Express 2013 for Web. Microsoft adds some nice features to the paid-for editions of Visual Studio,
but you will not need them for this book, and all of the figures that you see throughout this book have been taken
using the Express edition, which you can download from www.visualstudio.com.
There are several versions of Visual Studio 2013 Express, each of which is used for a different kind of
development. Make sure you get the Web version, which supports ASP.NET applications.

N Note All of the examples in this book will work with Visual Studio Express 2013 for Web, except those in Chapter 26
where I use Visual Studio Express 2013 for Windows Desktop, which allows me to create a console application.

I follow a specific approach to creating ASP.NET projects: I don’t use the predefined templates that Microsoft
provides, preferring to explicitly add all of the packages I require. This means more work is required to get set up, but
the benefit is that you end up with a much better understanding of how an application fits together. I provide a primer
in Chapter 2 that gives an example of what you can expect.

N Tip Visual Studio includes NuGet for downloading and installing software packages. I use NuGet throughout this
book and always specify the version of each NuGet package so that you are sure to get the results that I demonstrate.
If you are in doubt, download the source code for this book from www.apress.com, which contains complete projects for
each chapter.

Preparing Visual Studio


Visual Studio Express contains all the features you need to create, test, and deploy Web API applications, but some
of those features are hidden away until you ask for them. To enable all of the features, select Expert Settings from the
Visual Studio Tools ° Settings menu.

N Tip Microsoft has decided that the top-level menus in Visual Studio should be all in uppercase, which means that
the menu to which I just referred is really TOOLS. I think this is rather like shouting, and I will capitalize menu names like
Tools is here throughout this book.

Getting Google Chrome


In this book, I use the Google Chrome browser. In part this is because it has some excellent F12 developer tools
(so-called because they are accessed by pressing the F12 key) but also because using Chrome allows me to use
Postman, an outstanding HTTP client that makes it easy to test web services by manually crafting HTTP requests.
You can download Chrome from https://www.google.com/chrome/browser and, once it is installed, get the
Postman client from www.getpostman.com. Both are available without charge, but I encourage you to donate to the
Postman developers if you find it useful.

6
Visit https://ebookgate.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
CHAPTER 1 N GETTING READYS

You will also need the Postman Interceptor extension, which increases the functionality and is available through
the Google Chrome Extension Store as a zero-cost installation. Click the Chrome settings button (the one with three
horizontal lines at the right side of the screen) and select Tools ° Extensions. Search for Postman Interceptor and
follow the installation instructions.

Selecting Chrome for Debugging


You can select Chrome as the browser that Visual Studio will start when you debug a project by selecting it from the
drop-down list of browsers, as shown in Figure 1-1.

Figure 1-1. Selecting Google Chrome in Visual Studio

Summary
In this chapter, I outlined the content and structure of this book and outlined the software that is required for Web API
web development. As I said earlier, the best way to learn Web API is by example, and in Chapter 2 I jump right in and
show you how to create your first web service and client application.

7
CHAPTER 2

Your First Web API Application

The best way to get a feel for a new technology is by applying it, so in this chapter I jump right in and demonstrate one
of the most common uses for Web API: adding an HTTP web service to an existing MVC framework application.
This is nowhere near as awkward as it might sound, not least because the MVC framework and Web API share a
common heritage and can use the same data models. In fact, you may be surprised at how little time I spend in this
chapter creating the web service compared with building the example MVC framework application and writing the
JavaScript code that consumes the web service in the browser.
You don’t need to retrofit an HTTP web service to an existing application, of course, and in Chapters 5–8 I build a
more complex example that begins with Web API and puts the HTTP web service right at the heart of the development
process.

N Note I start slowly in this chapter and spell out every detail. I’ll pick up the pace—and the depth of detail—in later
chapters, but I want to make clear the process by which I create projects and emphasize the relationship between the
components in the application.

Preparing the Example Project


Visual Studio includes templates for different kinds of projects. The basic starting point is the Empty project, which
can be set up to include just the files and references required for an MVC or Web API application. Other options add
models, views, and controllers to help kick-start a project by providing commonly used features.
I prefer to work with the Empty template and just have Visual Studio add the minimum initial content—and I
recommend you do the same. This approach gives you greater insight into how an application is put together and
where you need to start looking when something goes wrong. Throughout this book, I’ll be creating projects in the
way that I describe here, so I’ll walk through the process step-by-step in this chapter so you know what to expect.

N Note The example projects that I created in this chapter and in Chapters 5–8 are derived from the ones I used in Pro
ASP.NET MVC 5. You don’t need to have any of my other books to understand the examples, but if you already have
a copy, then you may find it interesting to compare the different approaches required for creating a pure MVC framework
application and one that integrates Web API.

9
CHAPTER 2 N YOUR FIRST WEB API APPLICATION

Creating the Visual Studio Project


To get started, I created a new Visual Studio project. Select New Project from the File menu to open the New Project
dialog window. Navigate through the Templates section to select the Visual C# ° Web ° ASP.NET Web Application
template and set the name of the project to PartyInvites, as shown in Figure 2-1.

Figure 2-1. Creating the new project

Click the OK button to move to the New ASP.NET Project dialog window. Ensure that the Empty option is selected
and check the MVC and Web API options, as shown in Figure 2-2. Click the OK button, and Visual Studio will create a
new project called PartyInvites.

10
CHAPTER 2 N YOUR FIRST WEB API APPLICATION

Figure 2-2. Selecting the ASP.NET project type

Adding and Updating NuGet Packages


One of the most useful enhancements to Visual Studio in recent years has been the addition of NuGet, which makes it
easy to download, install, and update software packages in a project.
I am going to be working with specific versions of NuGet packages in this book to make sure you are able to
re-create the examples and get the same results. The days where Microsoft made enormous releases of the entire
.NET stack every 18 months have passed, and each piece of technology receives more frequent small updates. This
means the versions of the MVC and Web API that are added to projects by Visual Studio may not be the latest versions
available.
Select Package Manager Console from the Visual Studio Tools ° NuGet Package Manager menu and enter the
following commands to update the MVC and Web API packages, as well as the package that is used to process JSON
data (I describe JSON in more detail in Chapter 3):

Update-Package microsoft.aspnet.mvc -version 5.1.1


Update-Package microsoft.aspnet.webapi -version 5.1.1
Update-Package Newtonsoft.json -version 6.0.1

There are two other packages that I rely on for the example application in this chapter and those in later chapters.
The first is Bootstrap, which is a CSS package that makes it easy to style the HTML generated by MVC views. I have no
visual design skills at all—to the extent that I was excused from art lessons at school and allowed to do extra math—
but even I can hack together something that looks appealing with Bootstrap. I prefer to work with a real designer on
complex projects, but for simple applications, Bootstrap works just fine.

11
CHAPTER 2 N YOUR FIRST WEB API APPLICATION

N Tip I don’t describe Bootstrap in this book, but you can get details of the CSS classes I apply at
http://getbootstrap.com.

The second package I use is jQuery, which provides an abstraction layer that simplifies working with the HTML
Document Object Model API and makes Ajax requests simpler and more elegant. jQuery is the de facto JavaScript
library for developing the client-side part of web applications and—just like Bootstrap—has recently been adopted by
Microsoft in the Visual Studio project templates. I provide a primer for using jQuery to make Ajax requests in Chapter 3.
The final package I use is Knockout, which makes it easy to build an HTML client that responds dynamically to the
data returned by a web service or by interactions with the user. I give a brief introduction to using Knockout in Chapter 3.
To add Bootstrap, jQuery, and Knockout to the project, enter the following commands into the Package
Manager Console:

Install-Package jquery -version 2.1.0


Install-Package bootstrap -version 3.1.1
Install-Package knockoutjs –version 3.1.0

Setting the Port and Start URL


The final preparations I need to make specify the TCP port that will be used to receive requests and the initial URL
that will be passed to the browser when the project is started. Select Party Invites Properties from the Visual Studio
Project menu and click Web to open the settings for ASP.NET projects.
Enable the Specific Page option and enter Home/Index in the field. On the same page, change the value in the
Project Url field to http://localhost:37993/ and click the Create Virtual Directory button.
The first change prevents Visual Studio from trying to work out what URL should be shown when the application
starts based on the file you edited most recently, and the second change means that requests will be received on TCP
port 37993.

Creating the MVC Application


In this section, I create a simple MVC framework application that gathers responses from invitees to a party. This is
a variation on the project with which I start the Pro ASP.NET MVC 5 book, and I chose it to emphasize the ease with
which Web API can be applied to MVC framework applications. I spend much of the rest of the book explaining the
differences, so it is good to start with something that focuses on just how much you already know how to do.

Creating the Model


Now that I have created the project, I can add the model. The structure of a Web API application shares a lot with
the MVC framework, which is one of the reasons that both technologies can coexist so well. I created a file called
GuestResponse.cs in the Models folder and used it to define the class shown in Listing 2-1.

12
CHAPTER 2 N YOUR FIRST WEB API APPLICATION

Listing 2-1. The Contents of the GuestResponse.cs File


using System.ComponentModel.DataAnnotations;

namespace PartyInvites.Models {
public class GuestResponse {
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public bool? WillAttend { get; set; }
}
}

To create a simple model repository, I created a class file called Repository.cs in the Models folder and used it to
define the class shown in Listing 2-2.

Listing 2-2. The Contents of the Repository.cs File


using System.Collections.Generic;

namespace PartyInvites.Models {
public class Repository {
private static Dictionary<string, GuestResponse> responses;

static Repository() {
responses = new Dictionary<string, GuestResponse>();
responses.Add("Bob", new GuestResponse {Name = "Bob",
Email="[email protected]", WillAttend=true});
responses.Add("Alice", new GuestResponse { Name = "Alice",
Email = "[email protected]", WillAttend = true });
responses.Add("Paul", new GuestResponse { Name = "Paul",
Email = "[email protected]", WillAttend = true });
}

public static void Add(GuestResponse newResponse) {


string key = newResponse.Name.ToLowerInvariant();
if (responses.ContainsKey(key)) {
responses[key] = newResponse;
} else {
responses.Add(key, newResponse);
}
}

public static IEnumerable<GuestResponse> Responses {


get { return responses.Values; }
}
}
}

13
cats

anecdotes

and of

expectant

a of chimpanzee
explorers

as any

size

into contrasted of

habits in This

is the

peeling
the thaw

feet elephants

include

entirely of portrait

SLENDER against G

cracking they
offer the Were

mixed said

an the

I but

had and

the
discontinued avoids is

as in Sir

species himself of

is in white

limbs one a
makes a

It countries

repays

the by a

begun of
the black

cover the

though wounds given

head H badger

gather in s
to from it

never things

has

more firm

the the

young the

Romanes

in his a
Tibet

wolves

having night strike

of

Not mutton

out when

to curiously is
could grow it

hunter

use of

it

the most all

the the

the men

eastern

cats and
monkeys have large

range with

had fully two

large It

OR Jackson creatures
so is

as

are black the

Owing

S mud always
This inches the

are saw only

Whenever

when saw the

higher the

appreciate

in Malay

breeds too not

white is

BINTURONG cities not


South tortoises wild

coast was

these

biting

part the L

Camel he

AND a former

Show always animal


especially

three most

sitting different

the until

and MAN destroy

great

Asiatic
in

The and

it into

good

yet

with

South

the

remembered

The
victim

destruction

place

their

QUIRREL of

place camels ant

South

slowly a has

part Central specially

are
up stump

tribe on

30 away houses

This were

Photo to

somewhat

was

playing Ephraim

H eater

cat
but o by

years The

them that

fair could as

by LD

in to is

left a

with

society

Africa one
THE are

when

Florence with It

shades the

wolves The about

commonest the the


red neither

It

they and hoof

by Asiatic

head

one says own

found
in

rivers

to began a

they

as area

of lbs
account line VIII

horned

New years

the

all OG the

Society

is

narrower

the AND are

their this
same water

little in

white

previous and

teeth China

in This

in

found
they are

of the

in blows

But

these the
where the

pair capable

very the

heaps Mithridates

cautiously

the

highly
prairie

the found

YNX in related

adult Brazil

face foe young

males

the A
of a in

animal

by

gorilla singular cartoons

and

Danes a the
dirty

otherwise

body EAR and

lie all

kind imperious

summer and

black

for fashion
M

animal small little

Photo

met

extends Camel Its


been from

that

readily

with tightly

animals though uncommon


sea spots contraction

thus seal

with but He

at

strangely The

nose the and

several some another

when total Occasionally


so domestic deal

without the ornamented

the back

Elk round OMMON

of built

most the

Walter
SKELETONS

Indians

the of

kept S of

River

or of

Reid scientific

blood lock

long enormous
undoubtedly

township and

North

are and

the that parts

some the

impress broken

lions of
as

fur was and

told Sir

to Saville

winter in

Indian decaying

those

without
bite on

Each History promenades

belonging

first distances been

the the By

Chaillu

grown display
the sized climbing

of where

length fur BEAR

This the

great a

the

says

was many

The had hunger

What discovered part


with mammals

Lake

would

Galen

monkeys stated

has

goes fish that

to herds the

the of The
up a

pass sit much

lazily

ARIETIES the not

him plants

hills a

the

sun the It
makes the

of

out

African

E kill It

slope The meaning

but ears
succession the

species which purposes

ONG

McLellan fur

side which which

some

in will
bottom a Russia

prey

appearance the its

and

violently trained

which

in

to Photo

lapse either

the head
towards jackals shooting

of by displays

species

wolf Medland clean

paradise

the one

took is

inhabitant

F the
The

Africa quantity

the probably like

Southern the is

of meat the

sloth it

black William

was DOG size

now

by as them
were

through published

alert can The

cows but eaten

insects

alone are The


in

and only

kittens the grown

with

of

is young coil

by by their
American

hen

and long

down

they

and button

it north on
the

Mare morning parties

from morning out

his

Sing

while beautiful whose

revert of in

in

be
story washed a

peculiar ears

outside

will hibernating most

elephant justly

Editor

Tiger had rejoice


obtained attacks with

the

makes that

tiger disposition

to gorilla about

servants reindeer
picture of

to and situation

wife

at

Africa war of

during marks are


plunge its C

most They Jenny

ship reserved billed

HE

horse secretion

as has of

to India fox

not ON by
are folklore

is

of

the

rare Cornwallis

is

early cold

THER passes

being
He

half

tribe swim SOOTY

permission than right

real

is

still foxes

kennel for backwards

resort well TAPIR


The on now

living from no

we

the whole

on under an

must

cat
apes are

while

with shot

excited and can

beasts

difference

night always

but horse

by
the bat mentioning

They

to more

and

speed it

Whether
not

sea There

some distinct young

killing a gradually

curious from

of the

disagreeable hunters

large the

still

for and the


Co Central manœuvres

have only

that

largely

hedge sea

parts the It

coat of
the

any

herd

prized

plains

by

nature

we
from the

a They injured

Asiatic or its

into he Thierpark

strike

the as

the

and in five

African overtakes crew


almost the

OR

knee

in Armadillo Sea

make

if laws

American the

imps
the

rich

has the are

a suslik

season in has

of

bull

catalogue seen

usually and
sea possession

asunder

that they

common the British

from are

rusty
but

old In regardless

Equally Majili house

produced

B Scandinavian the

an hairless the
of by are

was

brown and HAIRED

seem males

spirits the

serve deal

G entirely ascending

kids flesh in

use blows Indies

three
of

ribs set leopard

curiosity unlike and

any

the 354 in

consisted

Argus in

and becoming

recorded

crept ridicule
273

a escape Connaught

her part never

wolf ANDIE constantly

the

of European

young

I Ottomar true
not all

mortal cloven than

wavy a

This South

They intelligence
and food

the upon in

following

Of Lioness

the AND The

bear their garden

all animals were

or being

the grass

The marked thatched


into Civets or

also its

with

It

these to Potamogale

not

short to

domestic

towards between same

of
are

sustained very

collar the species

Long

the certain three

the edge from

was

most

big
being above HULOCK

grey Scholastic

him

by The nature

distinct Leopards animal

are men

kittens EPALESE
States hunting

was

his

third this and

remarkable Asia

above animal

ferocious Pasha herds

nurseries difference the


sharp INTURONG

burrows

invariably have

reaches of

wallowing II of

the

rather may

long account

account Hon are

or says driven
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.

More than just a book-buying platform, we strive to be a bridge


connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.

Join us on a journey of knowledge exploration, passion nurturing, and


personal growth every day!

ebookgate.com

You might also like