100% found this document useful (4 votes)
30 views

Download Full Web API Development for the Absolute Beginner A Step by step Approach to Learning the Fundamentals of Web API Development with NET 7 1st Edition Irina Dominte PDF All Chapters

Development

Uploaded by

greilichelto
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
30 views

Download Full Web API Development for the Absolute Beginner A Step by step Approach to Learning the Fundamentals of Web API Development with NET 7 1st Edition Irina Dominte PDF All Chapters

Development

Uploaded by

greilichelto
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Download the full version of the ebook at ebookname.

com

Web API Development for the Absolute Beginner A


Step by step Approach to Learning the Fundamentals
of Web API Development with NET 7 1st Edition
Irina Dominte
https://ebookname.com/product/web-api-development-for-the-
absolute-beginner-a-step-by-step-approach-to-learning-the-
fundamentals-of-web-api-development-with-net-7-1st-edition-
irina-dominte/

OR CLICK BUTTON

DOWNLOAD EBOOK

Download more ebook instantly today at https://ebookname.com


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

ASP NET Web API 2 2nd Edition Jamie Kurtz

https://ebookname.com/product/asp-net-web-api-2-2nd-edition-jamie-
kurtz/

ebookname.com

ASP NET Web API 2 Recipes A Problem Solution Approach 1st


Edition Filip Wojcieszyn (Auth.)

https://ebookname.com/product/asp-net-web-api-2-recipes-a-problem-
solution-approach-1st-edition-filip-wojcieszyn-auth/

ebookname.com

Practical ASP NET Web API 1st Edition Badrinarayanan


Lakshmiraghavan (Auth.)

https://ebookname.com/product/practical-asp-net-web-api-1st-edition-
badrinarayanan-lakshmiraghavan-auth/

ebookname.com

Restless Giant The United States from Watergate to Bush vs


Gore 1St Edition Edition James T. Patterson

https://ebookname.com/product/restless-giant-the-united-states-from-
watergate-to-bush-vs-gore-1st-edition-edition-james-t-patterson/

ebookname.com
An introduction to invariants and moduli 1st Edition
Shigeru Mukai

https://ebookname.com/product/an-introduction-to-invariants-and-
moduli-1st-edition-shigeru-mukai/

ebookname.com

Consciousness Theatre Literature and the Arts 2013 1st


Edition Daniel Meyer-Dinkgrafe

https://ebookname.com/product/consciousness-theatre-literature-and-
the-arts-2013-1st-edition-daniel-meyer-dinkgrafe/

ebookname.com

Science of Memory Concepts 1st Edition Henry L. Roediger


Iii

https://ebookname.com/product/science-of-memory-concepts-1st-edition-
henry-l-roediger-iii/

ebookname.com

Maternal Child Nursing 4th Edition Emily Slone Mckinney


Msn Rn C

https://ebookname.com/product/maternal-child-nursing-4th-edition-
emily-slone-mckinney-msn-rn-c/

ebookname.com

Applied EI The Importance of Attitudes in Developing


Emotional Intelligence 1st Edition Tim Sparrow

https://ebookname.com/product/applied-ei-the-importance-of-attitudes-
in-developing-emotional-intelligence-1st-edition-tim-sparrow/

ebookname.com
The First Modern Jew Spinoza and the History of an Image
Daniel B. Schwartz

https://ebookname.com/product/the-first-modern-jew-spinoza-and-the-
history-of-an-image-daniel-b-schwartz/

ebookname.com
Web API
Development for
the Absolute
Beginner
A Step-by-step Approach to
Learning the Fundamentals of
Web API Development with .NET 7

Irina Dominte
Web API Development for the Absolute Beginner: A Step-by-step Approach
to Learning the Fundamentals of Web API Development with .NET 7
Irina Dominte
Iasi, Romania

ISBN-13 (pbk): 978-1-4842-9347-8 ISBN-13 (electronic): 978-1-4842-9348-5


https://doi.org/10.1007/978-1-4842-9348-5

Copyright © 2023 by Irina Dominte


This work is subject to copyright. All rights are reserved by the publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Joan Murray
Development Editor: Laura Berendson
Editorial Assistant: Gryffin Winkler
Copy Editor: April Rondeau
Cover image designed by Stefan Schweihofer from Pixabay
Distributed to the book trade worldwide by Springer Science+Business Media New York,
1 New York Plaza, 1 FDR Dr, New York, NY 10004. Phone 1-800-SPRINGER, fax (201) 348-4505,
email [email protected], or visit www.springeronline.com. Apress Media, LLC is a
California LLC and the sole member (owner) is Springer Science+Business Media Finance Inc
(SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for
reprint, paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub.
Paper in this product is recyclable
Table of Contents
About the Author��������������������������������������������������������������������������������xv

About the Technical Reviewer����������������������������������������������������������xvii

Acknowledgments�����������������������������������������������������������������������������xix

Introduction���������������������������������������������������������������������������������������xxi

Part I: The Basics�������������������������������������������������������������������������1


Chapter 1: Introducing Web API�����������������������������������������������������������3
What Is an API?�����������������������������������������������������������������������������������������������������3
Categorizing APIs��������������������������������������������������������������������������������������������������4
Types of APIs���������������������������������������������������������������������������������������������������������4
Push/Stream APIs��������������������������������������������������������������������������������������������4
Native APIs�������������������������������������������������������������������������������������������������������5
SDKs����������������������������������������������������������������������������������������������������������������5
REST����������������������������������������������������������������������������������������������������������������5
RPC APIs����������������������������������������������������������������������������������������������������������6
The Look and Feel of Web Apps����������������������������������������������������������������������������7
What Is a WEB API?���������������������������������������������������������������������������������������������13
When to Use WEB API������������������������������������������������������������������������������������������16
The World of Web Applications����������������������������������������������������������������������������17
Summary������������������������������������������������������������������������������������������������������������18

v
Table of Contents

Chapter 2: Introduction to the Web�����������������������������������������������������19


How the Internet Works��������������������������������������������������������������������������������������19
Protocols��������������������������������������������������������������������������������������������������������19
Client–Server Architecture����������������������������������������������������������������������������22
What Is a URL: The Building Blocks���������������������������������������������������������������������23
Schema���������������������������������������������������������������������������������������������������������23
Domain����������������������������������������������������������������������������������������������������������24
Path���������������������������������������������������������������������������������������������������������������25
Query String��������������������������������������������������������������������������������������������������25
Fragment�������������������������������������������������������������������������������������������������������27
Request and Response���������������������������������������������������������������������������������������27
Request���������������������������������������������������������������������������������������������������������27
Response�������������������������������������������������������������������������������������������������������29
Request versus Response�����������������������������������������������������������������������������31
Headers���������������������������������������������������������������������������������������������������������������33
Accept�����������������������������������������������������������������������������������������������������������34
Content-Type�������������������������������������������������������������������������������������������������35
Cache-Control������������������������������������������������������������������������������������������������37
HTTP Methods�����������������������������������������������������������������������������������������������������37
GET����������������������������������������������������������������������������������������������������������������38
POST��������������������������������������������������������������������������������������������������������������38
PUT����������������������������������������������������������������������������������������������������������������40
DELETE����������������������������������������������������������������������������������������������������������40
HEAD��������������������������������������������������������������������������������������������������������������40
OPTIONS��������������������������������������������������������������������������������������������������������41
Idempotent versus Safe Methods������������������������������������������������������������������42

vi
Table of Contents

Status Codes�������������������������������������������������������������������������������������������������������43
1xx – Informational����������������������������������������������������������������������������������������43
2xx – Success�����������������������������������������������������������������������������������������������43
3xx – Redirects����������������������������������������������������������������������������������������������44
4xx – Client Errors�����������������������������������������������������������������������������������������44
5xx – Server Errors����������������������������������������������������������������������������������������46
Cookies���������������������������������������������������������������������������������������������������������������47
Summary������������������������������������������������������������������������������������������������������������49

Chapter 3: Setting Up the Environment����������������������������������������������51


Installing Visual Studio����������������������������������������������������������������������������������������51
Postman��������������������������������������������������������������������������������������������������������������53
What Is Postman?������������������������������������������������������������������������������������������53
Exploring the Postman Interface�������������������������������������������������������������������55
Your First Web API Project�����������������������������������������������������������������������������������59
Creating a Project������������������������������������������������������������������������������������������59
Exploring the Project Structure���������������������������������������������������������������������63
Running the Project���������������������������������������������������������������������������������������68
Issuing Your First Request�����������������������������������������������������������������������������71
Summary������������������������������������������������������������������������������������������������������������73

Chapter 4: Web API: Building Blocks��������������������������������������������������75


Convention Over Configuration���������������������������������������������������������������������������75
MVC���������������������������������������������������������������������������������������������������������������������76
Model�������������������������������������������������������������������������������������������������������������77
View���������������������������������������������������������������������������������������������������������������77
Controller�������������������������������������������������������������������������������������������������������77
The API Request Pipeline������������������������������������������������������������������������������������79

vii
Table of Contents

Controllers & Actions������������������������������������������������������������������������������������������80


Controllers�����������������������������������������������������������������������������������������������������80
Actions�����������������������������������������������������������������������������������������������������������82
Action Return Types���������������������������������������������������������������������������������������83
Model������������������������������������������������������������������������������������������������������������������87
DTO����������������������������������������������������������������������������������������������������������������89
Validating Models������������������������������������������������������������������������������������������89
Using Models�������������������������������������������������������������������������������������������������90
Model Binding�����������������������������������������������������������������������������������������������������91
Middleware���������������������������������������������������������������������������������������������������������92
Using Map������������������������������������������������������������������������������������������������������98
Using MapWhen������������������������������������������������������������������������������������������100
Using UseWhen�������������������������������������������������������������������������������������������101
Routing��������������������������������������������������������������������������������������������������������������102
What Is the Routing Mechanism?����������������������������������������������������������������102
Convention-based Routing��������������������������������������������������������������������������104
Attribute Routing�����������������������������������������������������������������������������������������107
Dependency Injection����������������������������������������������������������������������������������������112
What Is a Dependency?�������������������������������������������������������������������������������113
Types of Dependencies��������������������������������������������������������������������������������114
Dependency Injection Container������������������������������������������������������������������117
Dependency Injection in ASP.NET Web API��������������������������������������������������118
Service Lifetimes�����������������������������������������������������������������������������������������119
Cleaning Up DI Registrations�����������������������������������������������������������������������127
Summary����������������������������������������������������������������������������������������������������������130

viii
Table of Contents

Part II: Implementing an API���������������������������������������������������131


Chapter 5: Getting Started with Web API������������������������������������������133
A Short Introduction to REST�����������������������������������������������������������������������������133
Client–Server�����������������������������������������������������������������������������������������������134
Stateless������������������������������������������������������������������������������������������������������134
Caching��������������������������������������������������������������������������������������������������������135
Uniform Interface�����������������������������������������������������������������������������������������136
Layered System�������������������������������������������������������������������������������������������138
Code on Demand�����������������������������������������������������������������������������������������139
Your First RESTful API���������������������������������������������������������������������������������������139
Introducing CRUD����������������������������������������������������������������������������������������������139
Getting to Know the Project������������������������������������������������������������������������������141
Implementing a GET Request����������������������������������������������������������������������������141
Implementing GET and Using an ID�������������������������������������������������������������������144
Implementing a POST Request�������������������������������������������������������������������������148
Implementing a HEAD Request�������������������������������������������������������������������������153
Implementing a PUT Request����������������������������������������������������������������������������154
Implementing a DELETE Request����������������������������������������������������������������������155
Best Practices for API Design����������������������������������������������������������������������������156
Summary����������������������������������������������������������������������������������������������������������159

Chapter 6: Introducing an ORM��������������������������������������������������������161


What Is an ORM?�����������������������������������������������������������������������������������������������161
Introducing Entity Framework���������������������������������������������������������������������������163
Entity Framework Core Building Blocks������������������������������������������������������164
Configuring Relations Between Entities������������������������������������������������������169

ix
Table of Contents

Ways of Working with a Database���������������������������������������������������������������������174


Database First���������������������������������������������������������������������������������������������175
Model First���������������������������������������������������������������������������������������������������177
What Are Migrations?����������������������������������������������������������������������������������������178
How Do Migrations Work?���������������������������������������������������������������������������179
Installing SQL Management Studio�������������������������������������������������������������������180
Linking Our Project to a Database��������������������������������������������������������������������180
Generate Tables from Our Project����������������������������������������������������������������180
Scaffold Entities from an Existing Database�����������������������������������������������187
Querying Data���������������������������������������������������������������������������������������������������192
Interfaces Used for Query Results���������������������������������������������������������������192
Loading Related Data����������������������������������������������������������������������������������194
Executing Raw SQL�������������������������������������������������������������������������������������195
Summary����������������������������������������������������������������������������������������������������������195

Chapter 7: Getting Organized������������������������������������������������������������197


Splitting Code into Layers���������������������������������������������������������������������������������198
Domain Layer����������������������������������������������������������������������������������������������������201
Data Layer, Implementing a Repository������������������������������������������������������������208
Service Layer����������������������������������������������������������������������������������������������������212
Introducing AutoMapper�����������������������������������������������������������������������������������216
Installing AutoMapper����������������������������������������������������������������������������������218
Wire Everything�������������������������������������������������������������������������������������������������220
Implement SpeakersRepository������������������������������������������������������������������221
Implement SpeakersService�����������������������������������������������������������������������224
Make SpeakersController Changes�������������������������������������������������������������225
Try It Out������������������������������������������������������������������������������������������������������������232
Summary����������������������������������������������������������������������������������������������������������234

x
Table of Contents

Chapter 8: Routing����������������������������������������������������������������������������235
What Is a Route?�����������������������������������������������������������������������������������������������235
Route Templates������������������������������������������������������������������������������������������236
Route Segments������������������������������������������������������������������������������������������237
Route Parameters����������������������������������������������������������������������������������������239
Route Tokens�����������������������������������������������������������������������������������������������240
Route Values������������������������������������������������������������������������������������������������241
Convention-based Routing��������������������������������������������������������������������������������241
Attribute Routing�����������������������������������������������������������������������������������������������242
Route Template Precedence�����������������������������������������������������������������������������246
How to Customize Routing��������������������������������������������������������������������������������247
Route Constraints����������������������������������������������������������������������������������������������248
Creating a Custom Route Constraint�����������������������������������������������������������249
Available Constraints�����������������������������������������������������������������������������������252
Creating Hierarchical Routes����������������������������������������������������������������������������253
Summary����������������������������������������������������������������������������������������������������������260

Chapter 9: Middleware���������������������������������������������������������������������261
Middleware Usage Scenarios���������������������������������������������������������������������������264
Introducing Custom Middleware�����������������������������������������������������������������������265
Create Your Own Middleware to Add Headers��������������������������������������������������267
Making an Extension Method for Our Middleware��������������������������������������������268
Understanding the Security Headers We Added�����������������������������������������������271
X-Content-Type-Options������������������������������������������������������������������������������271
X-Frame-Options�����������������������������������������������������������������������������������������271
X-Permitted-Cross-Domain-Policies�����������������������������������������������������������272
X-XSS-Protection�����������������������������������������������������������������������������������������273
Summary����������������������������������������������������������������������������������������������������������274

xi
Table of Contents

Part III: Beyond Basics������������������������������������������������������������275


Chapter 10: Model Binding���������������������������������������������������������������277
What Is Model Binding?������������������������������������������������������������������������������������277
Model-binding Sources�������������������������������������������������������������������������������279
Attribute Scope��������������������������������������������������������������������������������������������282
Binding-related Attributes���������������������������������������������������������������������������283
Selectively Bind Properties��������������������������������������������������������������������������283
Create a Custom Model Binder�������������������������������������������������������������������������285
Using the Custom ModelBinder�������������������������������������������������������������������������291
Value Providers�������������������������������������������������������������������������������������������������293
When to Use a Value Provider����������������������������������������������������������������������295
Implement a Custom Value Provider������������������������������������������������������������296
Value Provider Factory��������������������������������������������������������������������������������������299
Apply the Value Provider Globally����������������������������������������������������������������301
Apply the Value Provider Selectively Using an Attribute������������������������������301
Summary����������������������������������������������������������������������������������������������������������303

Chapter 11: Versioning the API���������������������������������������������������������305


Versioning-related Libraries������������������������������������������������������������������������������307
Getting Started��������������������������������������������������������������������������������������������308
Preparing the Project�����������������������������������������������������������������������������������308
API Version Options�������������������������������������������������������������������������������������317
Ways of Versioning��������������������������������������������������������������������������������������������319
Versioning in QueryString����������������������������������������������������������������������������320
Versioning in Headers����������������������������������������������������������������������������������322
Versioning with Media Types�����������������������������������������������������������������������324
Versioning in the URL Path��������������������������������������������������������������������������325
Combining Versioning Strategies�����������������������������������������������������������������328

xii
Table of Contents

General Rules about Versioning������������������������������������������������������������������������329


Deprecating Versions����������������������������������������������������������������������������������������330
Summary����������������������������������������������������������������������������������������������������������331

Chapter 12: Documenting the API����������������������������������������������������333


Introducing OpenAPI�����������������������������������������������������������������������������������������333
Introducing Swashbuckle���������������������������������������������������������������������������������335
Working with Swashbuckle�������������������������������������������������������������������������������336
Documentation Steps����������������������������������������������������������������������������������������337
Define Supported Request Content Types���������������������������������������������������337
Define the Possible Status Codes����������������������������������������������������������������338
Define the Content Type of the Response����������������������������������������������������340
Describing Endpoints�����������������������������������������������������������������������������������342
API Conventions������������������������������������������������������������������������������������������������347
Creating an API Convention�������������������������������������������������������������������������351
Summary����������������������������������������������������������������������������������������������������������355

Chapter 13: Testing the API��������������������������������������������������������������357


Why Is Testing an API Important?����������������������������������������������������������������������357
Terminology������������������������������������������������������������������������������������������������������358
Test Doubles������������������������������������������������������������������������������������������������359
SUT��������������������������������������������������������������������������������������������������������������359
Mock������������������������������������������������������������������������������������������������������������359
Stub�������������������������������������������������������������������������������������������������������������360
Test Types���������������������������������������������������������������������������������������������������������360
Unit Tests����������������������������������������������������������������������������������������������������������363
Anatomy of a Unit Test���������������������������������������������������������������������������������363
Library Types You Might Encounter�������������������������������������������������������������367

xiii
Table of Contents

Creating Our First Unit Tests�����������������������������������������������������������������������������370


Testing the Controller����������������������������������������������������������������������������������371
Testing a Service�����������������������������������������������������������������������������������������379
Other Useful Attributes��������������������������������������������������������������������������������382
Integration Tests������������������������������������������������������������������������������������������������384
What Is a Fixture?����������������������������������������������������������������������������������������388
Creating a Custom WebApplicationFactory�������������������������������������������������388
Writing an Integration Test��������������������������������������������������������������������������393
Unit versus Integration Tests�����������������������������������������������������������������������������400
Summary����������������������������������������������������������������������������������������������������������400

Index�������������������������������������������������������������������������������������������������403

xiv
About the Author
Irina Dominte(Scurtu) is an independent
consultant and trainer, international
speaker, software architect, Microsoft MVP
for developer technologies, and Microsoft
certified trainer (MCT) with a wealth of
experience. Having taught classes, workshops,
and presentations for over 2,000 hours, Irina is
passionate about coding and keeping abreast
of the latest trends and best practices in
software architecture and .NET.
Twice a year, for five months each time, Irina teaches .NET and
C# to aspiring software developers or people interested in software
development or seeking to expand their knowledge. She is an active
member of the community and has founded the DotNet Iasi User Group
and the dotnetdays.ro conference, where she connects with like-minded
developers who are eager to share their expertise and insights.
Irina is also a prolific blogger, and her website, https://irina.codes,
features a wealth of articles on various coding topics. She decided to write
this book after learning firsthand how much people struggle to grasp new
concepts without proper guidance.

xv
About the Technical Reviewer
Layla Porter is an experienced software
engineer and developer advocate specializing
in .NET technologies. She’s a Microsoft MVP,
GitHub Star, and Progress Ninja, and in 2021
she founded the #WomenOfDotNet Initiative.
Layla has spoken at developer conferences
all over Europe and North America and is a
YouTube content creator and streamer. She
spends her time hiking, reading urban fantasy,
playing video games with her husband, and
doting on her two miniature pinschers, Cookie
and Lily.

xvii
Acknowledgments
The completion of this book wouldn’t have been possible without the help
and support of many people.
First, I want to thank my husband, who supported me every step and
encouraged me. Second, my daughter, Ilinca, who luckily enjoyed going
to daycare so I could write this book, and my in-laws, who were there to
babysit when I needed them.
Furthermore, I would like to express my appreciation to all those who
took the time to review my manuscript and provide constructive feedback
that helped refine the content. Special recognition goes to my tech
reviewer, Layla Porter, and my friends, Maria Rusu, Andrei Diaconu, and
Alexandra Nechita.
Last, but not least, thanks to my former students Tatiana Ciurescu and
Cosmin Dumitru, who were brave enough to shift their careers into tech
and never stopped learning.

xix
Exploring the Variety of Random
Documents with Different Content
number of vicious tugs to bring the lead to its lowest point, she would
return to her book. It was at one of these more energetic pumpings
that the intruder’s presence caught her eye. She started and her
face lengthened into an expression of humorous, half scandalized
astonishment. This distraction lasted so long that the lead crept up
unnoticed and the wind gave out bringing the melody to an abrupt
and wheezy halt.
“Minna!” The Princess’s voice only confirmed the certainty Ludovic
had felt as to the player.
“Pardon!” Minna energetically seized the handle and gave several
vigorous pulls. “My book was so exciting that I forgot.”
The melody rose again, the absorbing book lay on the floor, and for a
while the bellows received a pretty girl’s full, almost feverish,
attention.
Presently she looked again at Ludovic and made a comic expression
of disgust. He stood irresolute, telling himself that he ought to go, yet
yielding to the temptation to linger. The girl’s facial suggestion was
now supplemented, after a vehement sending down of the indicator,
by a pantomime of weariness. There must have been an object in
these signals, yet Ludovic did not take the hint. So Minna,
abandoning vagueness, plainly beckoned to him, making signs that
he should take her place at the bellows. The invitation could scarcely
be disregarded. He came forward and took his position by the lever,
while the girl slipped away and settling herself on a more
comfortable bench, avidiously resumed her exciting story.
For about half an hour the music continued, Ludovic gravely keeping
to his work at the bellows, and Minna, save for an occasional sly
upward glance, seeming absorbed in her book. There were breaks in
the playing between the ending of one piece and the beginning of
another. In one interval of silence, as Ludovic stood waiting for the
organ to swell out again, he looked up and saw the Princess
standing before him. His involuntary glance at her face told him
nothing. He bowed low.
“Pardon, Princess,” he said soberly, “the Countess was tired and I
ventured to take her place.”
Minna had sprung up and came forward with a look of mingled
apprehension and sly enjoyment of the situation.
“It is true, Highness,” she corroborated. “My arms began to ache and
my book was so exciting that I asked Herr von Bertheim to blow till I
had rested and the duel was over. One cannot blow the organ
properly when one is in a state of terrific suspense.”
The Princess’s face gave no indication of how she took the situation.
“It is perhaps more a man’s work,” she said coldly. “I am obliged to
Herr von Bertheim. I did not know he was in the chapel.”
Still no sign whether his presence gave her offence or not.
“I was passing down the Broad Walk when the music stopped me
and drew me in,” he explained. “I had no idea, until I saw the
Countess, that the player was your Highness.”
“It is perhaps an unusual thing,” she returned with a touch of
bitterness, “to find a person in my position cultivating an art. I do not
know whether it is one of the things we are bidden to leave to the
less exalted, and not meddle with. Your ignorance can scarcely be
blamed, sir.”
“I cannot blame it, Princess, unless my presence has given you
offence.”
“That ought never to be,” she returned quickly, “seeing how welcome
it once has been.”
“I could never presume on that chance service,” he said simply.
“No.” She spoke abstractedly, mechanically. Minna had fidgetted
away behind the screen to the door, perhaps on the watch. “That
makes it all the more acceptable,” the Princess added in the same
distant tone, a tone which impelled him to reply.
“I take the hint, Highness.”
He half turned away, when the murmur of her voice recalled him.
“You need not take more than is meant to be given,” she said, and
there was a sweetness in her tone he had never heard before. She
gave a quick glance to where Minna stood, and then added, “If I
seem far less grateful than an”—she gave a little shrug—“an
ordinary woman would be you must not impute the churlishness to
me but to my position. It is one of the attributes of royalty to be
above the common feelings of the outside world.” The words
seemed forced from her, the vent of a grievance, long resented, ever
dwelt on. The situation was but an opportunity not the cause of its
expression.
“I never could dream of imputing anything but graciousness to your
Highness,” Ludovic protested eagerly. “I have no right here, I know:
but being free of the Court I ventured to cross the park on my way
home. Then the music caught my ear and I came in, thinking to listen
without being seen.”
She was looking away, now her glance fell on him. “You come to
Court?” she asked in a tone that was scarcely indifferent and yet
tantalisingly vague.
“I had the honour to be present at the Hof-Ball last week.”
“Ah, I wondered——”
He understood that she was thinking of his recognition of her at the
fortune-teller’s. His next words seemed surprisingly bold.
“Your Highness often plays here? Is it too much to ask to be allowed
to officiate as organ-blower again?”
A little hardening of the Princess’s face told him that his temerity was
resented. She gave him no answer. “Minna!” she called, “Come,
dear; it is late.”
But before Minna could reach them he had spoken again.
“Pardon, Highness,” he said with great restraint yet urgently. “You
have not forbidden me.”
But she spoke no word to him again. “Come, dear,” she said, linking
her arm in Minna’s, and so they went across the chancel to the royal
entrance leading by a covered way to the palace. He stood looking
after them hoping for what he knew was beyond hope. Minna
opened the door and the Princess passed out of sight without a
backward look. Minna glanced round with an inscrutable laugh.
CHAPTER V
RUPERTA AND LUDOVIC

SHE had not forbidden him. Even when reminded of it the


suggestion had not provoked a word of refusal. And yet she had
gone without a sign of leave-taking, but with all the air of being
offended. What was he to think? Turn it over as his mind would, it
always came back to the one conclusion that he would go to the
chapel again. “We are not allowed the feelings of ordinary people,”
the Princess had said. Did not that account for the way she had
recollected herself, or at least her station, and left him without
another word? But she had talked with him for some time before that
bold speech of his—lucky or unlucky, he would not own it either—
she had assuredly shown no offence at finding him there in the
chapel, at his presumption in assisting at her playing. Was that
because he had done her a service at the fortune-teller’s? It was not
a palatable suggestion, still less was it pleasant to think that his
forwardness might be construed into a presuming upon that service.
At any rate he would put it to the touch.
For the next days he haunted the park near the chapel but without
hearing the music he listened for, or seeing the Princess except once
when he caught just a glimpse of her driving in at the royal gates.
But one afternoon, when he had begun to think that the organ was
never to speak to him again, his ear caught its notes, softly
penetrating, stealing out into the woodland. For a moment he
hesitated. No; he had resolved to venture boldly; diffidence would
avail nothing; after all, he knew his every feeling to be chivalrous; he
would not hang back.
The door was opened. Ah, it might have been closed against him.
He went in quietly; Countess Minna was at the bellows; she laughed,
and her laugh told him that she, at least, had expected him. He
returned her silent greeting and without hesitation went up and took
the lever which she very readily relinquished. The music continued
for a long hour, ever sharpening his hunger for a sight of the player,
for the thrill of her voice again. Minna, as before, sat comfortably
reading, with a certain demure enjoyment on her face, but whether
caused by the book or the situation was not to be told. As each piece
ended von Bertheim looked for that radiant presence to stand before
him, and at each fresh swelling forth of the organ he felt a
disappointment which, with his love of music, might have been
incredible.
At length with the dying vibrations of a voluntary’s last notes there
mingled the striking of a clock. Countess Minna jumped up hastily
and ran forward.
“Princess! It is time to go. There is five striking.”
A wave of disappointment passed over him. Should he lose his
reward like that? Was it a trick? As he wondered, the Princess came
from behind the keyboard screen and saw him. Their eyes met; he
bowed.
“Thank you,” she said simply. “It was kind of you to relieve Gräfin
Minna.”
He had come near; she, preparing to turn away, held out her hand.
He pressed it to his lips. That was all, except for the word “Good-
bye,” which he scarcely heard, and the “thank you,” from Countess
Minna which he heard not at all. Before he could realise their
departure he was alone.
When he returned to his lodgings he found an official invitation to a
state concert to be held two days later. It meant the chance, certainly
of seeing, perhaps speaking to the Princess. That afternoon’s luck
had rewarded his days of disappointment. She had given him her
hand in token that in her eyes he was free from offence. “She has a
heart after all,” he said as he sat down to write an acceptance.
The concert was as rigidly classical as though the severity of the
Court’s forms and etiquette had infected the music, as, indeed, it had
drawn out the programme. Only in one piece was indulgence given
to mere beauty of melody, and in that he recognised a favourite of
the Princess’s doubtless, since she had played it both times he had
been in the chapel. Carried away by the sensuousness of the
melody he sat with eyes almost involuntarily fixed on the Princess.
She was unlikely to notice his gaze, but the inevitable Minna looked
round towards the side row where he sat, and he suddenly became
aware of her scrutiny. He wondered whether she would tell Princess
Ruperta of his whereabouts, but by no sign could he be certain of
that. “Why should she care? What a fool I am!” he told himself.
When the music was over the guests followed the royal party into the
great drawing-room, where they circulated and chatted in groups.
With his white face bent forward and hands clasped behind his back
the Chancellor strolled observantly through the rooms exchanging a
remark here and there, but ever on the watch, it seemed.
Ludovic von Bertheim stood looking after that fascinating, inscrutable
personality when he heard a well-remembered voice at his side.
“When you have finished studying our Chancellor, Herr von
Bertheim, may I ask you to give me a cup of coffee?”
They strolled off together to the Saal where refreshments were
served.
“It is delightful to meet you here again,” Ludovic said; “after——”
“Where there are no organ-bellows to blow?” Minna suggested
roguishly. “Oh! Hush!” She made a gesture of caution and raised her
cup to her lips. Rollmar was passing them.
“I did not know he was so near,” she observed, in a low tone. “He
has ears for whispers and eyes that see all round him. I warn you,
Herr von Bertheim.”
“I will be careful,” he laughed.
“Yes. Not only for your own sake, but——” she checked herself with
a shrug. “You see that young officer with red hair and eyes to match,
like a ferret? You will never guess who he is. Our wonderful
Chancellor’s son. Yes, you may well open your eyes. Captain von
Rollmar; he is as sharp as his face, and——shall I tell you?—a great
admirer of our Princess.”
She took a roguish delight in watching the effect of her whisper,
laughing and sipping her coffee.
“The admiration is hardly returned, I should think,” he could not help
saying.
“You should hope so, eh?” she corrected. “What do you think? The
Princess is a girl of taste. I have—not exactly a message for you, but
I know the lady we speak of is anxious to hear about your country.
You know, perhaps she is to marry your future King?”
“I have heard the rumour.”
“Poor girl! It is a shame.”
“Why a shame?”
“Because she hates him.”
“Has she ever seen him?”
“No. Is that a necessary preliminary in royal betrothals?”
“Perhaps not. But surely to hate.”
“Hates the idea, then.”
“Ah, that is conceivable.”
“The comfort, or the absurdity, of it is that he seems to be, if
possible, as indifferent to her as she to him.”
“That can be only accounted for by his never having seen her.”
“Whose fault is that? He has never even asked for her portrait. He is
away, no one knows where, on a hunting expedition. To ignore, no
doubt, the disagreeable fate in store for him, and to try to forget while
he can that there is such an annoying thing on earth as woman in
general and our Princess in particular.”
Their talk had taken them through the picture gallery and out upon
the terrace, for on that warm autumn night the long windows stood
open. They had gone but a few steps when a well-known voice said:
“Minna, I have been looking for you. I was stifled in these hot rooms.”
As Ludovic bowed to the Princess a casual onlooker would have
said it was a first and formal introduction; and perhaps with the
Chancellor’s many eyes everywhere, that was as well. A court official
came sauntering along, evidently getting a little relief from the
boredom of his duties. Countess Minna threw him a laughing remark
to that effect. He stopped and they stood chatting within two or three
paces of the Princess and von Bertheim.
“I hear, Highness,” Ludovic said presently, “that you are interested in
the country I come from.”
“I cannot help being interested,” she replied. Then as the equivocal
meaning of the words struck her, she added hastily, “It is not my fault
if it is so.”
“I have heard a rumour, Princess,” he said quietly.
“Ah, yes; a rumour. It is only a rumour as yet.” It was impossible to
gather from her tone what meaning lay behind her words. “Tell me of
your country,” she went on. She was looking away over the black
screen of trees at the star-lit sky, and the words seemed forced
mechanically through the dreamy preoccupation that held her.
“It is a pleasant one?”
“A fair land enough,” he answered, “with great vine-covered plains
and rounded hills with lovely broad valleys and nestling towns. Yes, it
is a land too pleasant and favoured to lie longer in obscurity. Our
King——”
“Never mind your king,” she broke in almost haughtily; “he does not
interest me. Tell me of your country. Has it rocks and dashing rivers,
and great forests, like ours?”
“A few only. Scenery like yours is not general.”
“Scenery!” she repeated, with an inflection of something like scorn.
“You speak of that as though it were of no account. It is everything. It
is nature. It makes all the difference between romance and a dull,
sordid reality. Your king”—there was scorn now in her voice
unmistakably—“is, I suppose, intent upon making his country of
commercial importance. The grapes from your vines are to be
transferred to the taverns and shops of London and Paris, and as the
drunkards of the world increase so will your country’s prosperity.
Prosperity? That means money. I hate that. Why cannot this king of
yours leave his people happy as they are? Does money mean
content? I would rather be a mother to the poor than to the rich,
rather reign over my country as Heaven made it, with its crags and
torrents and forests, than over a land of wine-vats and offices where
legends and traditions are ousted by account-books and bills, and
the people in their insolence of wealth acknowledge in their hearts
but one king—money. Here, at least, we are free, or nearly all of us,”
she added, a little bitterly.
“But, Princess,” he began to argue, “if the two countries were joined,
would not the best characteristics of both be united?”
“Never,” she returned impatiently; “it is impossible. Romance and
business can never agree.” She gave a little shiver. “We catch the
wind here,” she said, returning to her cold, indifferent tone. “Minna, it
is cold. We will walk to the end of the terrace.”
The moments were precious, yet to von Bertheim it seemed difficult
to make the most of them. The change in his companion’s tone
showed him that she considered at an end the subject on which she
had spoken so warmly. In her fascinating complexity, in the manifest
struggle between constraint and inclination, between the yearning for
freedom and the sense of coercion, in short between the Princess
and the woman, there was something bewilderingly captivating and
yet deterrent.
“You cannot think,” she resumed, breaking the silence, “what it is for
those who are born to high places to be condemned to see most of
the pleasures of life from a distance. They are all round us, but out of
reach. We are like poor ragged children gazing into the toy-shop
windows. Yes; we are supposed to have everything, and we have—
almost nothing.” She spoke with a suppression of the feeling which
prompted the words. Ludovic could guess why she was inclined to
unburden herself to him.
“You think I must look upon our first meeting as a strange one,” he
said. “But I have seen too much of the world, have speculated too
much over the problems of our mysterious existence to wonder at
that. Ah, Princess—forgive me if your confidence makes me too bold
—I wish it might fall to my lot to free you from the grip of the world’s
custom, as it was my unspeakable privilege to stand between you
and that thieving ruffian.”
The end of the terrace walk had been reached, and as with the last
words they turned, it brought them face to face. Had he offended
her? He could not tell. The cold, proud look in her face made it seem
almost incredible that it could have been she who had spoken with
such feeling and unburdening of the heart a moment before. Just for
a few instants she made no reply; perhaps the mere expression of
his wish scarcely called for one. The silence left him in exquisite
suspense. So intent was he on her next words that he did not realise
she lingered, almost stopped. Countess Minna and her companion
had turned at the same time and were walking now in front. At last
the reply came.
“You are bold,”—the voice was exquisitely low—“but in you I cannot
blame boldness. It is,” here by an effort she lightened her tone, “it is
perhaps as well we can both realise that beyond boldness it is
madness, boldness to me, and madness to aught beside.”
“Not madness,” he protested, “to dream of fighting for happiness, for
——”
“Yes,” she interrupted quickly, almost peremptorily; “madness to
imagine and cruelty to suggest it. Ah!” she gave a shudder, “why are
right things so easily forgotten, wrong ones never? It is late; I must
go in. The dear Chancellor,” she laughed, “will be scandalised—or
worse. You are leaving Waldenthor?”
“I never said so, Princess.”
“But you are going?”
“Not unless your highness orders me.”
“Or somebody more powerful than I. Yes; you had better go. The
romance, the episode is over; would you wait for the anti-climax?”
“Is it over, Princess?” His voice vibrated with tenderness now, since
he might be bold.
“We have arrived at the best ending,” she answered. “Do not wait for
an unpleasant one.”
“Give me a better reason for banishment.”
“Than yourself? Is not the only other reason obvious?”
He bowed his head. That reason was all powerful. “I understand,
Princess,” he replied. “Then I go. Is this the last time we shall meet?”
There was sadness in the proud eyes, he could be sure of that. But
with characteristic self-control she forced it away. “Who can tell?”
she laughed. “We may meet again before very long—in your country.
There, Minna is signing to me. I know what that means. Good-bye,
my friend, good-bye, and thank you.”
She was moving off, but he took a quick step after her. “Princess,” he
pleaded, “give me one day’s respite. Let me hear the music in the
chapel again.”
But she would not stop or turn to give him an answer. He thought he
caught the murmur of one word “Madness!” as she hurried away.
CHAPTER VI
THE ORGAN’S PRISONER

THE birds in the woodland surrounding the royal chapel sang lustily,
as though exulting in the fact that the tones of their great opponent,
the organ, were for once so soft and weak as to yield them an easy
victory in the game of out-singing one another. The lowness of tone
in the dragging melody seemed to be the interpretation of a heavy
heart; it spoke the language of sadness and of parting.
Ludovic had taken his place early beside the organ, but had waited
long for the player; long, indeed, past her usual hour. Waited till he
was forced to ask himself whether the last night had not been the
end of that informal, delicious acquaintance. Was he never to see
the Princess again, at least as he had known her? Never again
watch fascinated for those sweet glimpses of the sun breaking
through the cold mist? There was so much he had to tell her, that he
felt he dared say now, if only the chance were not gone. He waited,
hoping and despairing, till the afternoon seemed turning to evening;
he watched the door through which she would come till he hated it
for mocking him with its immovability. At last, when he was sure that
the parting was over, unrealized, he looked up to see the door open
and the Princess and Countess Minna coming towards him.
Eagerly he went forward; ah! she was so cold. There was no trace of
the feeling she had given glimpses of the night before. The hand that
touched his lips was as chill as a statue’s. She had repented, yet
why, then, had she come? There was, at least, no sign of
disapproval in that stately greeting. She went straight to the
keyboard, he to his post, Countess Minna, unusually serious, to her
accustomed corner. So the music began to float gently through the
place; it was, or at least seemed, less interesting to him than usual;
he had so much to say, and the soft introit interposed between him
and his desire. Still, he could but wait; it was not for him to pluck
open the blossom of his hopes before his glorious sun should ripen
them. He was content to be near her, thankful that she had come,
overjoyed yet sad to think what her presence meant. When the
playing was over what would her words be? Not so frigid as her
greeting surely; yet the very coldness gave to her slightest
unbending a value far surpassing the warmth of an impulsive nature.
The sinking sun struck horizontally through the richly tinted windows,
and the shadows of the trees, just stirred by the almost windless
atmosphere, danced slowly and languidly on the wall, the pillars and
richly carved stalls, as though keeping time and character with the
music. The sands of his last day were running low, the dreamy
music, though he loved it, made him impatient. Then an idea came
to him. Why should he not ask Countess Minna to release him and
take his place, so that he might go round and be at least within sight
of the Princess? He hesitated. Would she not be offended if he broke
the tacit understanding between them? Certainly her reception of
him had given no encouragement to impatience or forwardness. It
was his duty to respect her slightest hint, to let the initiative always
come from her, above all, never to make her task (if he dared believe
it were one) more difficult. Yet every argument failed against his
intense desire. He looked round at the demure reader coiled up
snugly in her corner; she glanced up as his movement caught her
eye, and laughed as he signed to her. Then she shook her head; she
was sharp enough, and guessed what he wanted, but—perhaps she,
too, thought it madness. Anyhow it was with a deprecating
expression that she rose and came to him.
“Will you not relieve me for five minutes?” he asked.
She kept her hands behind her. “Why?” she asked. “You are surely
not tired.”
“No; not tired, but——”
“The Princess hates any one to look over her.”
“May I not see her from a distance?”
“You are a fool, with apologies for the liberty of telling you so, Herr
Lieutenant.”
“I dare say I am. But why?”
“To long for fruit that is out of your reach.”
“Perhaps. Still I shall not say it is sour.”
“Heaven forbid! No, you will not do that. Look! Quick! The wind is
out. Pump for your life! So! Shall I tell you further why you are a
fool?”
“If you please.”
“Because you do not seem to have the sense to know what would
happen if your organ-blowing were to come under the notice of our
Chancellor.”
“I can guess.”
“The grapes would be sour, at least they would set your teeth on
edge, though your sense of taste would soon be over.”
“I dare say.”
“And yet it is worth the risk, eh? It is well that you are brave. This is
the last time we meet here.”
“As the Princess wills.”
“She has willed it. I told her she was a—not wise to come to-day. You
don’t think of me and the risk I run. I am not anxious to meet you in
the next world yet. There! as you are brave, and this is truly the last
time, give me the handle. But you will worry the Princess.”
With a word of thanks he had turned towards the front of the organ,
when her voice called him back sharply. “Take care! We are
watched. Bend down quickly.”
She sprang forward and pushed him away, taking his place at the
handle. “Keep under the curtain,” she directed, pumping away
vigorously. “Out of sight. A man is looking through the window. I just
saw his head from where I stood. It was Udo Rollmar. If he sees you
—ah, he must not see you. Hist! there he is again.”
Peeping through a slight parting in the curtains that screened the
organ-blower’s seat, Ludovic could see a foxy face looking in
through one of the leaded panes. He remembered what Countess
Minna had told him of the Chancellor’s son, that he was in love with
the Princess.
“I am not afraid of that fellow,” he said. “Why should I hide from
him?”
Minna threw up her hand in distress. “Oh, you idiot! You will ruin us
all. Can you not think of the Princess? Now will you hide? Quickly!
He is surely coming in. Oh, we are ruined! We are lost!”
The face had disappeared from the window. The situation was
critical. At any moment Captain Rollmar might show himself over the
screen. Minna was beside herself with terror, while the music still
floated out under the fingers of the unconscious player.
“Oh, this is awful!” she gasped in despair, looking helplessly round
the trap in which they seemed caught. “Ah!” She pointed to the
narrow door which gave admittance to the interior of the organ. “In
there, for Heaven’s sake!” she besought him. But he hesitated and
hung back.
“It is unnecessary,” he objected quietly.
Even in her distress she could not help marvelling at his coolness.
“You are mad, or, at least, horribly selfish,” she exclaimed
indignantly. “If you are tired of your life because you cannot have
what you want, I promise you I am not. Man, to save the Princess’s
honour and my life, will you not go in there till the danger is past?”
She spoke with rapid vehemence, trembling with fear and
excitement.
“I will obey you,” he said with a half laugh, and entered the narrow
opening. She shut and fastened the door, and then sprang back to
the bellows handle. Just in time; for she had scarcely given one
vigorous pull when the curtain parted, and the expected face
appeared. She affected to give a start and a little scream.
“Ah, Captain, how you frightened me. I thought it was the devil, who
they say once came after a priest in this very chapel.”
His suspicious eyes were searching the place as he replied with a
cunning smile, “It is neither the devil nor a priest this time, little
Minna, although if the old gentleman has taste he would be more
attracted by the organ-blower than by the clergy.”
She made him a mocking curtsey, and, by design or accident, let the
wind run off, bringing the music to a stop.
“Highness!” she cried, “here is Captain von Rollmar.”
If it was in apprehension that the Princess joined them she did not
show it.
“May I blow for you, Princess?” Captain Udo asked with a bow.
“Thank you, I have finished playing,” she returned coldly. “The light is
fading. Come, Minna.”
The vulpine eyes were feasting on her, so contemptuously majestic
in comparison with his cunning insignificance. “Do not hurry away,”
he suggested with all a vain, clever man’s self-confidence. “It is
pleasant here.”
“Yes; but we have stayed long enough. It grows chilly. Let us go,
Minna.”
Minna had placed herself a little behind the Captain, so that, unseen
by him, she could give her mistress a warning glance.
“We might stroll out into the park,” she suggested, “if your Highness
is agreeable. It is a delicious evening, and Captain von Rollmar
would be our escort.”
The proposal suited the Captain exactly, and as for the Princess she
comprehended the intention behind it and agreed. So the three went
out together, leaving Ludovic a prisoner in the organ.
They walked up and down the great avenue till it was time to go in,
Captain Udo in such a state of content that the amiability working out
in his expression almost eclipsed its foxiness. He was too happy to
think of suspicion. It was dusk when they turned up a path leading to
one of the private entrances of the palace. But there was hardly any
scandal to fear in the company of the Chancellor’s son; at least the
wily old terror would have to keep his blame at home.
“Oh, Highness,” Minna cried suddenly, “I have left my book back in
the chapel. How stupid I am! May I run back for it? You shall not wait
for me a minute.”
“Does the book matter?” the Princess asked.
“Oh, Highness,” she replied with a humorous look of entreaty, “it is
so interesting, and I have promised myself such a delicious hour with
it to-night. May I run?”
“You are a spoilt child, Minnchen,” her mistress laughed.
Captain Udo made a half-hearted offer to fetch the book, but Minna
decided that he might not find it at once; she knew exactly where it
was. He should stay with the Princess for the one short minute the
errand would take. Accordingly he, nothing loath, remained and
Minna sped off to the chapel. Only to find the door locked.
The book must indeed be interesting to make her look so troubled at
its loss, Captain Udo thought as she rejoined them empty-handed.
But she would send a servant for it, she said.
“You might have thought of that before, and saved yourself the
trouble, silly child,” the Princess remarked.

And Ludovic von Bertheim remained imprisoned in the organ. His


was a curious nature, for the situation amused him, and yet in itself it
was by no means pleasant. The space was confined, the
atmosphere close and dusty. But for a few feeble rays of light which
stole in between the pipes he was in darkness. And yet he laughed.
He heard the heavy footsteps of the sacristan, then the clang of the
locked door, and still he laughed. The situation had its charm; not a
very obvious one. That he was a prisoner was certain enough; he
had tried the little door; it was securely fastened on the outside; no
doubt he could kick it open, but that would be a last resort. Perhaps
he did not want to burst it open. The tortuous pathways in the organ,
known only to the tuner, were not inviting; he resolved to leave them
untried, and await his release where he was, meanwhile making
himself as comfortable as he could. So he stayed, for hours it
seemed, for he could not see his watch. Dusk deepened into night;
the moonlight streaming faintly through the coloured windows could
not penetrate that thicket of pipes and levers; the darkness was as
complete and oppressive as the silence.
Perhaps it was from having grown accustomed to the intense silence
that his ear at length detected a light footfall; he listened alertly, it
came near; yes, his ear had not played him false, the step was just
by him, only separated by a thin partition. The latch was turned and
the door opened. So used had his eyes become to the darkness that
even the subdued moonlight for a moment dazzled him, but without
a question he made haste to leave his uncomfortable prison.
“A pretty penance you have made me pay, Countess,” he laughed,
then stopped short with a great thrill. It was not the Countess Minna,
whom he had looked for, but the Princess.
For a moment he could not speak; only stare at her as she stood
before him, the dim light and shadow heightening her beauty by
affording of it no more than a suggestion.
“You, Princess?”
The low tone vibrated with recognition as though struck from the
depth of his heart. It was eloquent of an acknowledgment that could
not be spoken.
“Minna came long ago to release you, but found the chapel locked
up.”
Her calm tone was in strong contrast to his fervent ejaculation:—
“Thank Heaven for that!”
A ray of moonlight, guided by a moving branch, stole along the organ
screen and for a moment lighted up her face.
“And you have come, my Princess.” He spoke in a rapturous
whisper, for the intoxication of her beauty, the splendid graciousness
of her presence bereft him of voice. How could he address her as he
would have spoken to Countess Minna?
There was a suggestion of sad playfulness in her tone as she
replied. “Was it not fitting that I should return the service you
rendered me, and free you? But, indeed, I came to say good-bye!”
Her face was now in the dim shadow again and somehow he felt
glad of it. There are joys so great that they suddenly turn to torture.
“Must it be?” he said pleadingly.
“You know it must be,” she answered in the same repressed tone.
“You are going,” he said, “to marry Prince Ludwig against your will.”
“Whether that be or not it can make no difference to us,” she replied
still coldly. Ah, if he might only hear her speak again with the warmth
of last night.
“I cannot leave you, my Princess, even at your bidding.”
“You are unkind to disobey.”
“If you wish me to go, if you will be happier in the knowledge that you
will never set eyes on me again——”
“It is not a question of happiness.”
“Of duty?”
She threw back her head and forced a laugh. “It is a matter, as I said
last night, of madness or sanity.”
“Then let me be mad.”
“No, no.”
“Let me stay, if only to breathe the same air, to see you, far off, yet to
see you, to wake every morning with a hope——”
“No, no!” Ah, her heart was sending warmth into her voice at last.
“You cannot be so cruel, my Princess.” He was pleading now with
desperate earnestness. “Let me stay near you.”
“It is you that are cruel. You must go.”

You might also like