100% found this document useful (6 votes)
21 views

Full Download 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 DOCX

API

Uploaded by

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

Full Download 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 DOCX

API

Uploaded by

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

Download Full Version ebookmass - Visit ebookmass.

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://ebookmass.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 HERE

DOWLOAD NOW

Discover More Ebook - Explore Now at ebookmass.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Kubernetes Fundamentals: A Step-by-Step Development and


Interview Guide 1st Edition Himanshu Agrawal

https://ebookmass.com/product/kubernetes-fundamentals-a-step-by-step-
development-and-interview-guide-1st-edition-himanshu-agrawal/

ebookmass.com

Kubernetes Fundamentals: A Step-by-Step Development and


Interview Guide 1st Edition Himanshu Agrawal

https://ebookmass.com/product/kubernetes-fundamentals-a-step-by-step-
development-and-interview-guide-1st-edition-himanshu-agrawal-2/

ebookmass.com

Postman for API Testing: A Beginner's Guide: Learn to test


APIs like a pro with Postman with Real-World Examples and
Step-by-Step Guidance Parvin
https://ebookmass.com/product/postman-for-api-testing-a-beginners-
guide-learn-to-test-apis-like-a-pro-with-postman-with-real-world-
examples-and-step-by-step-guidance-parvin/
ebookmass.com

Membangun Kemandirian Petani Garam melalui Literasi


Keuangan dan Perencanaan Keuangan Keluarga untuk Produksi,
Akses Modal, dan Informasi Pasar Dr. Didin Fatihudin
https://ebookmass.com/product/membangun-kemandirian-petani-garam-
melalui-literasi-keuangan-dan-perencanaan-keuangan-keluarga-untuk-
produksi-akses-modal-dan-informasi-pasar-dr-didin-fatihudin/
ebookmass.com
Earl's Well That Ends Well Jane Ashford

https://ebookmass.com/product/earls-well-that-ends-well-jane-
ashford-2/

ebookmass.com

Claimed By The Wolf Lord: An Enemies to Lovers Paranormal


Romance (Lunar Bride Book 3) Skye Wilson

https://ebookmass.com/product/claimed-by-the-wolf-lord-an-enemies-to-
lovers-paranormal-romance-lunar-bride-book-3-skye-wilson/

ebookmass.com

Crossed Skis Carol Carnac

https://ebookmass.com/product/crossed-skis-carol-carnac/

ebookmass.com

Functional Assessment and Program Development 3rd Edition,


(Ebook PDF)

https://ebookmass.com/product/functional-assessment-and-program-
development-3rd-edition-ebook-pdf/

ebookmass.com

A Thousand Vermilion Stars Patricia Logan

https://ebookmass.com/product/a-thousand-vermilion-stars-patricia-
logan/

ebookmass.com
Oxford IB Diploma Programme IB Mathematics: analysis and
approaches, Standard Level, Print and Enhanced Online
Course Book Pack (English B for Ib Diploma Programme) Paul
La Rondie
https://ebookmass.com/product/oxford-ib-diploma-programme-ib-
mathematics-analysis-and-approaches-standard-level-print-and-enhanced-
online-course-book-pack-english-b-for-ib-diploma-programme-paul-la-
rondie/
ebookmass.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
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 orders-ny@springer-sbm.com, 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 booktranslations@springernature.com; for
reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com.
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
I dedicate this book to my daughter and to you,
the reader, whether you are trying to learn a
totally different domain or just like to keep
learning new things.
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
Introduction
This book aims to provide you, the reader, with a step-by-step approach
to learning Web API development. We start by introducing basic concepts
related to the Web in general and end with more advanced topics like
testing an API.
Across the chapters, you will notice a lot of things that might be subject
to debate—like splitting the code into different libraries, using different
coding standards, or even writing code that requires more lines than I
would use in real life.
Everything I choose to use in this book in terms of coding conventions,
API architecture, libraries, and topics covered was tested and proved
successful over the last eight years. In my spare time, twice a month,
I teach .NET to people that come from totally different domains than
programming. The vast majority now work in IT, and I dare to think that I
made a small contribution to that by using this approach.

xxi
PART I

The Basics
CHAPTER 1

Introducing Web API


This chapter introduces you to the world of APIs, including what kinds of
APIs are out there, what their purposes are, and how you can categorize
them. By the end of the chapter, you will have the correct vocabulary to use
when dealing with different types of APIs.

What Is an API?
The term API is very widely used in the information technology (IT)
industry, and sometimes its usage can be confusing. The term is an
acronym for “application programmable interface.”
This is in fact the interface that gives a person or a system the ability to
interact with a piece of hardware or software through the operations that
are exposed.
Think about an API as a remote control, controlling your TV. You
press buttons to change the channels back and forth. Something similar
happens with APIs. You call methods and endpoints, or set values to
properties that are exposed to control aspects of that system.
While regular web applications are intended for humans to interact
with, APIs are like web applications but don’t have buttons or cute layouts
to interact with. Their intent is to be consumed by different “users.” In this
case, the “user” of an API might be a system or a developer.
There are many types of APIs with different scopes and addressability,
and they can be found in different parts of the web, or offline on devices.

© Irina Dominte 2023 3


I. Dominte, Web API Development for the Absolute Beginner,
https://doi.org/10.1007/978-1-4842-9348-5_1
Chapter 1 Introducing Web API

APIs are everywhere. A mobile app, a weather app, your laptop’s


operating system, a fridge, your smart doorbell, and even your car all
expose or use APIs.
In this book, we will focus more on APIs that run on the web over the
HTTP protocol, serving data for web applications in JSON format. However,
you do need to know about the many types of APIs available. Your browser
has an API, your operating system has an API, and you can interact with all
of these. We will talk briefly about some of them in the next section.

Categorizing APIs
Now, if we ask ourselves, “What other kinds of APIs exist?” we may not
have a simple answer. Categorizing an API is a difficult job because we
need to add context to it. Imagine we have a set of LEGO blocks we need
to categorize. We might split them by color, or maybe by size. The same
happens with APIs—we can find more than one way to categorize them. In
the next section, we will talk about a few types of APIs that I have found to
be the most common and important.

Types of APIs
Push/Stream APIs
Push/stream APIs are event driven and send real-time notifications to
clients. In most cases, a web server will “push” messages or notifications
to a web browser. The business domain where you find APIs of this
category involves messaging, chats, video, streaming, or payments. There
is a significant chance of finding such APIs where time and real-time
processing are paramount.
Underneath, these APIs sometimes use protocols like WebSockets or
technologies like SignalR.

4
Chapter 1 Introducing Web API

Native APIs
APIs that are native usually are the interface of a device or a tool, allowing
us to interact with the device or tool. For example, web browsers have
a JavaScript API embedded that allows them to interpret and execute
the JavaScript code used in web applications. The same JavaScript API
will allow us to write and execute code directly in the Console tab of
developer tools.
In a similar manner, we can access our smartphone’s camera or
accelerometer through the exposed native API.

SDKs
An SDK, or software development kit, is a package of tools written in
different languages that helps developers build applications on top of that
package. For example, the .NET SDK provides a set of libraries and tools
that can be used by developers to build their own APIs or web applications.
SDKs get delivered as installers or as part of an Integrated Development
Environment workload and sometimes give you scaffolding capabilities
through those IDEs.

Scaffolding is the code generation capability given by some tools or


frameworks. It aids the development process by autogenerating code
based on predefined options or by taking in some input.

REST
REST, or representational state transfer, is an architectural style in the API
world that comes with a set of principles and guidelines about how to
design your API and leverage the underlying protocol in the correct way.

5
Chapter 1 Introducing Web API

REST was first mentioned by Roy Fielding in his dissertation thesis in 20001.
Since then, it has gained a lot of traction in the IT industry, but some
concepts were misunderstood.
Most of the APIs you will encounter in the web world are written in this
way. Not all respect the REST guidelines as they should, and are in fact JSON
over HTTP, but this is another subject that we will tackle at the right moment.
We will talk more about REST in a dedicated chapter.

RPC APIs
RPC is a term that means “remote procedure call,” and it has been
around for a while now in various forms. This model will look like you
are calling methods from the same application and using classes from
within the same scope or solution, but in fact the methods are hosted on a
different machine over the network. One of its main purposes is to make a
distributed system look and behave like a monolith.
If we look at Listing 1-1, the method calls seem to be part of the same
system, due to how an RPC API looks like. The calls to CreateOrder() and
ProcessPaymentFor() are actually calls over the network boundaries, even
if the look and feel for developers are local.

Listing 1-1. Code snippet to exemplify RPC

var order = salesBoundedContext.CreateOrder(orderRequest);


var paymentStatus = billingBoundedContext.
ProcessPaymentFor(order);
if (paymentStatus.IsSuccessful)
{
   shippingBoundedContext.ArrangeShippingFor(order);
}

1
https://resources.sei.cmu.edu/asset_files/WhitePaper/2017_019_001_
505040.pdf

6
Chapter 1 Introducing Web API

With an RPC (and when I say RPC, I am referring to the general


concept not necessarily gRPC or other implementation types), the
developer will call methods with arguments and get results, but that call
will involve a network call over HTTP protocol (in most of the cases). There
are plenty of benefits and drawbacks to using such an API, but all deserve a
separate section, which is not in the scope of this book.

The Look and Feel of Web Apps


Looking at any web application from the outside—if we are talking about
websites or web apps, as those have a layout, buttons, colors, and images
that we browse on—we see they have two parts:

• Frontend – This runs on the browser and is usually


written in HTML, CSS, and JavaScript (or a JavaScript
framework like Angular, React, Vue.js). In some cases,
people refer to this part of the application as the
presentation layer. As the name states, the scope of it is
to display information to the user, and it should be as
dumb as it can be.

• Backend – This is written in a server-side language like


C#, Python, or Java, and it runs on a web server.

From the developer’s perspective, depending on the framework we pick,


the separation is not that clear. Most of them have frontend and backend
code intertwined or have structures or components that generate HTML
code from the server. Such an example can be seen with the ASP.NET
MVC framework, where structures like Tag Helpers and HTML Helpers do
exactly this: generate HTML from the server.

7
Chapter 1 Introducing Web API

In the example that follows, you can see an HTML Tag Helper that
when executed generates an HTML input tag:

@Html.TextBoxFor(x=>x.AddedDate)

We can say that these application models are like self-contained boxes,
as shown in Figure 1-1.

Figure 1-1. Frontend and backend overview in ASP Razor Pages

The ASP Razor Pages application model comes with a nice structure, as
shown in Figure 1-2, and is very easy to understand and work with.

Figure 1-2. ASP Razor Pages project structure

8
Chapter 1 Introducing Web API

Listing 1-2 and Listing 1-3 explore how a page would look in this
application model. We should have such source code file pairs for each
page we add to our application.

Listing 1-2. Index.cshtml Razor Page client page

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about
<a href="https://docs.microsoft.com/aspnet/core">building Web
apps with ASP.NET Core</a>.</p>
</div>

Listing 1-3. Index.cs—How the code looks likew

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace WebApplication1.Pages
{
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;

        public IndexModel(ILogger<IndexModel> logger)


        {
            _logger = logger;
        }

9
Chapter 1 Introducing Web API

        public void OnGet()


        {

        }

From an architectural point of view, this programming model can


be included in the “Onion Architecture” category. As you can see in
Figure 1-3, everything is contained in the same app, and all the layers are
built around the business domain.

Figure 1-3. Onion architecture

Starting from the outermost layer, into to the middle, everything is


contained in the same application. It doesn’t matter if internally you
split the code into multiple libraries for better maintainability and code
separation—those libraries will still be strongly coupled. When it comes to
deployment and packaging, the code is delivered and treated as a whole.

10
Chapter 1 Introducing Web API

To be honest, I enjoy writing such apps from time to time, and I rely
on them every time I have the opportunity. To me, it is faster and easier
to use something that is utterly familiar than to, let’s say, set up a React or
Angular frontend app and back it up with a standalone API. Nowadays,
ASP.NET MVC and ASP.NET Razor Pages or Blazor, are modern, easy to
learn, and have a wide addressability—meaning that they will do what they
are supposed to do in most cases.
These frameworks have a very well-defined place in the software
ecosystem, and they will be used in the future too. Now, most of the
enterprise world is more focused on non-functional requirements like
scalability, fault-tolerance, maintainability, and extensibility. These
requirements go beyond features and functionality to implement. These
applications tend to follow different architectures. They have a clear,
strict separation of frontend and backend, as shown in Figure 1-4, due to
different business needs.

Figure 1-4. Frontend versus backend separation

This separation is not only an adaptation to modern times, where


developers want to work with the latest tools and tech, but a clear
necessity. Sometimes we need to give more computing power to those
areas of the business that require it, while others can function well with
less computing power.
For example, let’s look at an online shop with interesting products.
When the products are accessed by a lot of customers at the same time we
would need to scale that app section. This way we ensure that pages are
loading properly and users don’t get errors.

11
Chapter 1 Introducing Web API

However, the same online shop could have a reporting section that an
admin might use once per month; it would be a waste of money to scale it.

Scaling an API typically refers to the process of adjusting the


infrastructure and resources supporting the API to handle increasing
levels of traffic and usage without degrading performance or
reliability. This involves adding more computing resources, such as
servers, load balancers, and databases, as well as implementing
caching mechanisms, optimizing code, and configuring auto-scaling
systems to ensure that the API can handle spikes in traffic and usage.

Splitting the frontend code and the backend code into separate apps
is common practice. This way you will have a frontend app, and an API
or maybe several APIs that will send data to the frontend, as shown in
Figure 1-5. With this separation, we have the luxury of treating different
parts of a system independently in a way that might bring benefits to the
business.

Figure 1-5. Frontend and 2 backend APIs

12
Chapter 1 Introducing Web API

Starting to use a frontend versus backend separation leads to a


more granular split of the system. Now we can have a frontend and very
specialized APIs that are easy to maintain and deploy. Having a system that
is split into several pieces, instead of having just one big block, has a lot of
benefits, and we could discuss this in depth. However, I will choose just a
few that I find to be notable at this level:

• You can scale only the part of your app that needs
scaling.

• You can have different technologies, such as modern


frameworks like React or Angular on the frontend, and
use powerful languages for the backend.

• You can have separate, specialized, and


dedicated teams.

• You can minimize merge conflicts.

• You can have several backends serving one UI.

• You can reuse the backends to serve different types of


frontends (mobile apps, web, mobile).

• You can decrease costs and keep them under control.


Enterprise applications will strongly benefit from the granularity
offered by modern architectures, as these are the ones that respond to
change very well.

What Is a WEB API?


The ASP.NET Web API is a set of libraries that allows us to develop RESTful
HTTP APIs (backends) using .NET, C#, or the language we prefer to work
with, in .NET.

13
Chapter 1 Introducing Web API

We need to make a small clarification. You will often hear developers


saying “Web API” while referring to generic APIs that serve data to clients.
In this book, and in this context, I will refer to the ASP.NET Web API as
simply Web API. The expression is shorter like this, and it becomes a
known and self-explanatory vocabulary.
Web API gets delivered with the Visual Studio installer, and is available
under Workload ➤ Web & Cloud, as illustrated in Figure 1-6.

Figure 1-6. Visual Studio Workload—ASP.NET and Web


development

Having this workload installed will allow us to start our code from a
predefined structure, as shown in Figure 1-7.

14
Chapter 1 Introducing Web API

Figure 1-7. Web API project structure

If we run this project, we will see the web browser opening, and the
API will just work with dummy data, without us doing any configuration
at all. It will load the documentation page that comes by default in the
project template, and you’ll see something like Figure 1-8, with the small
exception that for you, the port might be different than 7038.

15
Chapter 1 Introducing Web API

Figure 1-8. Web API project start screen

Inside the project structure, everything has a well-defined role in the


ecosystem. This is an approach called Convention Over Configuration that
you’ll encounter in all major .NET programming models. In short, this
means that as long as you follow the well-established conventions, you
won’t need to configure anything, and the application will just work. This
way you can focus more on developing actual functionality and not lose
time doing tedious work. We will talk more about this in Chapter 4.

When to Use WEB API


Web API can be used anytime you want to develop RESTful services over
HTTP protocol. Due to its ease of use, it should be the go-to technology
option if you have such a scenario. These services might have different
response formats: JSON (the default one), XML, or something custom.

16
Chapter 1 Introducing Web API

These APIs can serve as backends for native mobile applications or as web
frontends. They can even be consumed by other backends in point-to-­
point communication patterns.
There are cases where you will need to make server-to-server requests
to implement functionality, and WEB API has classes that allow you to
do that.
For example, to process a payment using a payment provider, or to log
in a user using Facebook or Google, you might need to interact with their
APIs and make an API request from your API.
There are plenty of scenarios where someone might use a third-party
API to bring value to a product or a business, or to simply avoid reinventing
the wheel.

The World of Web Applications


In the world of speed, we all want to be connected. We start to automate
our homes, control things remotely, or integrate with major industry
players like Facebook or Twitter.
As developers, these things translate to a different approach when
it comes to developing web apps. We now need to manage more than
one single application from a single solution, and we don’t develop
monoliths anymore. We develop multiple APIs that are the building blocks
of the same system. We have microservice architectures where we need
to manage smaller moving parts and make sure these are running as
expected.
Life as developers is not getting any simpler, but one thing is for sure:
APIs are here to stay, and we need to learn how to write and manage them.
According to ProgrammableWeb.com, the world’s leading source of news
and information about web-based application programming interfaces, or
APIs, since 2008, the API world had a major growth trend, and that trend
continues today (Figure 1-9).

17
Chapter 1 Introducing Web API

Figure 1-9. The growth over time of APIs in ProgrammableWeb


directory

This chart is made of 22,000 APIs submitted to the ProgrammableWeb


directory, but we know for sure that not all APIs in the world are submitted
there, and so we need to take this information with a grain of salt.

Summary
In this chapter, we learned that an API is like a web app that doesn’t have
a presentation layer and responds only with data in the response body.
This data can have different formats, like JSON, XML, or anything custom,
specific to the business. We learned about different categories of APIs and
had a first look at the ASP.NET Web API. After that, we put everything into
context and saw how the web world has evolved and affected the way we
write code.
In the next chapters, we will set up our environments, learn must-­
know WEB concepts that we will use throughout the book, and then start
building our API.

18
CHAPTER 2

Introduction to
the Web
In this chapter, we will explore how the internet works and how
information travels over the internet. We will learn what happens every
time we navigate to a website. All the small blocks in this chapter are very
important for any web developer, even if they only write APIs or plan to use
other application models, such as .NET MVC or Razor Pages.
We will learn what a request and a response are, how we can add
meaning to them, and how to leverage the underlying protocol. We will use
these concepts extensively once we start creating our APIs.

How the Internet Works


It is necessary to start with the basics because it will give us a complete
picture of what happens every time we browse on a web page.

Protocols
A protocol is a set of rules that defines how data is exchanged within
or between computers (machines). Or, in other words, a protocol is a
convention between parties regarding the information exchange or
communication between them.

© Irina Dominte 2023 19


I. Dominte, Web API Development for the Absolute Beginner,
https://doi.org/10.1007/978-1-4842-9348-5_2
Chapter 2 Introduction to the Web

Examples of such protocols include Internet Protocol (IP), User


Datagram Protocol (UDP), Transmission Control Protocol, and so on.
Even you and I can establish a protocol. Let’s say that you and I decide
that we will send messages with words that begin with the letter A—then
we could say we have established a protocol between us.

HTTP Protocol
HTTP is the acronym for HyperText Transfer Protocol. It was first coined in
RFC1945 in 1996. It started with version 1.0, and since then it has evolved,
reaching version 3.0.

HTTP is an application-level protocol with the lightness and speed


necessary for distributed, collaborative, hypermedia information
systems. It is a generic, stateless, object-oriented protocol that can
be used for many tasks, such as name servers and distributed object
management systems, through the extension of its request methods
(commands). A feature of HTTP is the typing of data representation,
allowing systems to be built independent of the data being
transferred. (rfc1945, 1996)

With HTTP, the information traveling over the network is in clear text,
meaning that with the proper tools a potential attacker might see and use
what data travels between the client and the server and back. You can see a
schematic flow in Figure 2-1.

20
Chapter 2 Introduction to the Web

Figure 2-1. Clear text information over HTTP

H
 TTPS Protocol
HTTPS (HTTP Secured) is a version of HTTP where the information
traveling between the client and the server is encrypted using a certificate
that lives on the web server. That certificate is generated by a certificate
authority for a specific domain and or its subdomain. It has an expiration
date, which means that from time to time it needs to be renewed.
HTTPS provides a reasonable security level in unsecured networks,
and this means that transmitting sensitive data like passwords or credit
card numbers is safe. In this case, a potential attacker cannot see, in
clear text (Figure 2-2), what the details transmitted are (as was the case
for HTTP).

21
Chapter 2 Introduction to the Web

Figure 2-2. Encrypted data over HTTPS

Client–Server Architecture
The client–server architecture is the simplest type of architecture you
could ever find in the development world. It involves two entities, shown
in Figure 2-3, that are able to communicate and understand what each
other wants by decoding the bits and pieces that reach them.1

Figure 2-3. Client–server architecture

Client
In most cases, the client is the one that initiates the communication by
sending a request. We talk more in-depth about requests in a dedicated
section.

1
https://datatracker.ietf.org/doc/html/rfc1945

22
Chapter 2 Introduction to the Web

Server
The server is the entity that receives requests from clients, processes them,
and generates responses back to them. Of course, the response generation
happens if the initial request can be interpreted by the server.

What Is a URL: The Building Blocks


The web is a set of interconnected resources, and those resources need to
be addressable. If you want to be reachable by phone, then you’d better
have a phone with a phone number and tell people your number. The
same happens with resources on the internet by means of a URL.
URL is an acronym for Uniform Resource Locator—a specialized form
of a URI (Uniform Resource Identifier), first coined as a term when the web
was invented.
The URL is made of a few parts that have meaning for the server, and
that help it distinguish what the client wants. No part of it is random, even
if some of it might look so. Every single part has a well-defined role. Let’s
have a look at Figure 2-4 and talk about each individual part.

Figure 2-4. A URL structure example

Schema
The schema or protocol shows what is used in terms of transport. Usually,
you will find HTTP, HTTPS, or, in some cases, FTP.
The protocol will always be followed by the protocol separator, ://,
and even if we don’t often type it ourselves, the browsers add it in for us. In
the API world, we will make a clear distinction between HTTP and HTTPS,

23
Random documents with unrelated
content Scribd suggests to you:
Muutamia päiviä sen jälkeen oli Reinillä kokous syytettyjen
yliopistonopettajien kanssa neuvotellaksensa heidän kanssaan siitä,
mitä hän voisi ilmoittaa Plehwelle heidän tulevasta
suhtautumisestaan. Mielipiteet olivat vähän eroavia. Wrede oli
vähimmän taipuvainen myönnytyksiin. Kirje kanslerille lähti
joulukuun 24 päivänä ja Rein lausui siinä m.m. seuraavaa:
"Käynnillämme annetun lupauksen mukaan olen konsistorin
kokouksessa ilmoittanut Herroille professoreille Teidän Ylhäisyytenne
lausunnon ja on minulla sen lisäksi ollut erityinen kokous
professorien Setälän, Söderhjelmin, Gustafssonin, vapaah. Wreden,
Schybergsonin ja O. Donnerin kanssa, jotka Teidän Ylh. nimenomaan
mainitsi sellaisina, jotka ovat tehneet itsensä syypäiksi erikoisesti
virkamiehille sopimattomiin poliittisiin mielipiteenilmauksiin. Nämä
Herrat ovat tällöin selittäneet, että he, mitä tulee tähän Teidän Ylh.
lausuntoon, täysin hyväksyvät sen vastuun, mikä julkisesta
esiintymisestä nykyisissä oloissa seuraa, sekä että he, välttääksensä
saattamasta ikävyyksiä yliopistolle, ovat päättäneet noudattaa
tarpeellista varovaisuutta julkisissa lausunnoissaan. Jos joku kohta
heidän puheissaan tai esitelmissään on voitu käsittää sisältävän
mielenosoituksen hallitusta vastaan tai lainoitusta
vallankumouksellisiin hankkeisiin, ei sellainen mitenkään ole ollut
heidän tarkoituksensa. Täten eivät he kuitenkaan ole tahtoneet
vastaisuuden varalta luopua oikeudesta julkisesti lausua ajatuksensa,
mikä lain mukaan on kaikkien Suomen kansalaisten oikeus, myöskin
virkamiesten virantoimensa ulkopuolella." Kirjeessä seurasi sitten
Schybergsonin ja Setälän antamia erikoisia selityksiä heitä vastaan
tehtyjen syytösten johdosta. Kirje päättyi täten: "Siihen nähden,
mitä minulla ylläolevassa on ollut kunnia esiintuoda, ja koska minä,
kuultuani kyseessäolevien professorien selitykset, olen vakuutettu
siitä, että he vastedes välttävät sellaisia lausuntoja, jotka ovat
herättäneet Teidän Ylh. tyytymättömyyden, rohkenen toivoa, että
Teidän Ylh. hyväntahtoisesti suvaitsee olla H. Majesteetillensa
ehdottamatta mitään ankaria toimenpiteitä yliopiston opettajia
vastaan, jotka tähän saakka kaiken virantoimensa aikana ovat
osoittaneet lojaalista ja joka suhteessa moitteetonta käytöstä ja
hoitaneet innolla ja taitavuudella opettajatointaan."

Näin päättyi tämä suurta huomiota ja levottomuutta herättänyt


asia. Millään virallisella tavalla ei kansleri sitä lopettanut. Kuinka
vakava erottamisaie oli ollut, tahi kuinka suuressa määrin se oli
lausuttu pelkkänä uhkauksena, on vaikea sanoa. Professorien
julkiseen valtiolliseen esiintymiseen lähimpinä aikoina ei se
luonnollisestikaan ollut vaikuttamatta.

Helmikuun 16 päivänä 1901 kirjoitti Indrenius minulle, että hän


viimeisessä esittelyssä oli kysynyt Plehweltä, miten kyseessäolevan
asian laita oli. Tämä oli vastannut, että juttu, mikäli se koski
yliopistoa, oli päättynyt. Mutta henkilökohtaisesti olivat asiaan
sekaantuneet professorit merkityt mustaan kirjaan, eikä v.t. kansleri,
joka kyllä pitäisi heidät mielessään, valittaisi heidän eroansa.
Ylimalkaan pitikin Plehwe heidät muistissaan. Wredestä ja
Schybergsonista ei enää sen jälkeen tullut inspehtoreja. Gustafssonin
onnistui sijaiskansleri pysyttämään dekanuksen toimessa ja minä
taivutin henkilökohtaisessa keskustelussa Plehwen kanssa hänet
suostumaan siihen, että Setälä saatiin ehdottaa inspehtoriksi.
Söderhjelm ei saanut matkarahaa, jota oli hakenut, vaikka hänellä oli
sijaiskanslerin suositus. Huonoimmissa kirjoissa olivat ilmeisesti
Wrede ja Söderhjelm.
Kaksi käyntiä Plehwen luona maaliskuussa ja marraskuussa 1901.

Terveydellisistä syistä oli minun pakko kevätlukukaudella 1901


ottaa virkavapautta kahdeksi kuukaudeksi, lähinnä matkaa varten
Karlsbadiin. Matka kävi tälläkin kertaa Pietarin kautta ja minä tein
silloin pitemmän vierailun Plehwen luokse. Kun keskustelu osittain
kosketteli aivan äskettäin sattuneita tapauksia, ylioppilasten
Runebergin patsaalle tekemää laulutervehdystä ja helmikuun 18
päivän mielenosoituksia, on muutama selittävä sana niistä
paikallansa. Voimassaolevan opintoja kurinpitosäännön mukaan oli
rehtorin vallassa, siitä kuvernöörin kanssa neuvoteltuaan, antaa lupa
laulamiseen julkisella paikalla. Tätä määräystä oli aikaisemmin
sovellettu sangen vapaamielisesti. Mutta jotta mahdollisuuden
mukaan selkkauksia viranomaisten kanssa näinä valtiollisesti
rauhattomina aikoina vältettäisiin, olin minä kehoittanut
ylioppilaskuoroja tarkoin noudattamaan voimassaolevaa määräystä
sekä joka tapauksessa pyytämään rehtorin lupaa. Mitään ikävyyksiä
laulutervehdyksiin nähden, joita tapahtui sangen usein, ei minun
ensimmäisen rehtorivuoteni aikana ollut sattunut. V. 1900 julkaistun,
kokouksia koskevan asetuksen kautta, joka antoi kaiken vallan näissä
asioissa kenraalikuvernöörille, joutui kuitenkin olettamaan, että
selkkauksia myöskin ylioppilaslauluasiassa saattaisi syntyä.

Tammikuun 29 p:nä 1901 oli poliisimestari Gordie käynyt luonani.


Hän odotti Runebergin-päivää huolissansa erittäin siitä syystä, että
kenraalikuvernööri oli antanut kuvernöörin toimeksi pitää huolta siitä,
että tätä päivää vietettäessä uutta lakia tarkoin noudatettaisiin. Se
merkitsi m.m. sitä, että mitään laulutervehdystä Runebergin-
patsaalla ei saisi tapahtua ilman kenraalikuvernöörin lupaa. Tämän
johdosta oli minulla samana päivänä neuvottelu kuvernööri v.
Minkwitzin ja poliisimestarin kanssa. Me päätimme ymmärtää
äskenmainitun asetuksen siten, että rehtorin oikeus sallia
opiskelevien esiintyä juhlakulkueessa kadulla sekä, siitä kuvernöörin
kanssa neuvoteltuansa, antaa lupa laulamiseen julkisella paikalla ei
sen kautta ollut tullut kumotuksi. Kuvernööri lupasi v.t.
kenraalikuvernöörille, Schipoffille, ilmoittaa, että laulutervehdys
rehtorin luvalla tulisi tapahtumaan, sekä että hän, kuvernööri, ei
järjestystä ajatellen ollut nähnyt mitään syytä sanottua lupaa
vastustaa. Tämän hän teki helmikuun 4 p:nä. Kun Schipoff kysyi —
hän ei muuten kuulunut nerokkaimpiin — eikö hänellä ollut mitään
tekemistä asiassa, vastasi kuvernööri, että ei ollut. Silleen se jäi.
Laulutervehdys tapahtui kaikinpuolin onnellisesti ja sen suorittivat
minun toivomukseni mukaisesti kumpikin kuoro yhdessä. Runsaasti
6,000 henkeä oli patsaalle kokoontunut; Schipoff oli ollut suuresti
suutuksissaan moisesta kansankokouksesta.

Helmikuun 8 p:n Viborgsbladetissa oli Helsingistä kirje, jossa


kerrottiin Runebergin-päivän viettämisestä, ja siinä kirjeessä
sanottiin, että kuvernööri aluksi oli ollut sitä mieltä, että luvan
saamiseen laulutervehdyksen toimeenpanoa varten tarvittiin
yliopiston hakemus. Siihen sanottiin minun vastanneen, että sellaista
hakemusta en milloinkaan minä kirjoittaisi, vielä vähemmän
ylioppilaat, vaan että voimassaolevien säännöksien mukaan minä olin
tässä asiassa määräävä henkilö. Sillä tavalla sanottiin
laulutervehdyksen saattaneen tapahtua.

Saattoi edellyttää, että kenraalikuvernööri tekisi tapahtumasta


ilmoituksen Plehwelle, jonka vuoksi minä sanomalehtiuutisen
johdosta heti kirjoitin Indreniukselle, joka antoikin Plehwelle tiedon
kirjeeni sisällöstä. Kuitenkin tuli vähän myöhemmin sijaiskanslerin
kautta minulle virallinen kysely asiasta. Vastauksessani tein selkoa
asianlaidasta ja huomautin erikoisesti, että erimielisyyttä kuvernöörin
ja minun välillä ei ollut vallinnut, vaan että kumpikin olimme olleet
sitä mieltä, että heinäkuun 2 p:n 1900 asetus ei ollut kumonnut
opinto- ja kurinpitosäännöksen määräystä. Neuvottelun aikana olin
minä tosin lausunut, että jos niinkin kävisi, että sanottua asetusta
täällä katsottaisiin pitävän soveltaa, "ylioppilaat eivät voisi eivätkä",
niin minä arvelin, "tahtoisikaan tuonlaatuisissa tapauksissa itse
kääntyä suorastaan siviiliviranomaisten puoleen lupaa pyytämään,
vaan pysyttelisivät joka tapauksessa tekemisissä vain rehtorin
kanssa, joka sitten saisi huoltaa asiaa edelleen". "Tämä minun
lausumani ajatus", huomautin minä, "joka on täydessä
sopusoinnussa rehtorin ja ylioppilasten välisen suhteen kanssa,
merkitsee aivan toista kuin se lausunto, jonka minä Viborgsbladetin
kertoman mukaan olin antanut." Kirjelmässä mainitsin lopuksi, että
laulutervehdys oli tapahtunut ilman mitään häiriötä minun
hyväksymäni ohjelman mukaisesti.

Helmikuun 18 p:nä 1901, pimeänä päivänä, tapahtui illalla


katumellakoita ja mielenosoituksia, erittäinkin senaattorien Yrjö-
Koskisen ja Enebergin asuntojen edustalla. Poliisi oli aivan
valmistumaton ja senvuoksi melua ja rähinää jatkui pitkän aikaa,
ennenkuin mielenosoittajat ja utelias väkijoukko hajoitettiin.
Toimeenpanijat olivat etupäässä taiteilijoita ja polyteknikoita. 21 p:nä
minut kutsuttiin Schipoffin luokse, joka tahtoi tietää, olivatko
ylioppilaat ottaneet osaa mellakoihin. Minä vastasin, että minulla ei
ollut mitään syytä olettaa sitä, mutta lupasin koettaa ottaa selkoa
asiasta ja siinä suhteessa seurata sitä tutkimusta, jonka
poliisimestari jo oli pannut alulle. Schipoff puhkesi silloin kiukkuisiin
syytöksiin Gordieta vastaan, josta minä ymmärsin, että hänen
asemansa oli vaarassa. Seuraavana päivänä hän sai eron; se oli
minulle rehtorina suuri tappio, koska yhteistyö meidän kesken oli
ollut sangen hyvää. Schipoff lausui keskustelussa, että jos melu olisi
jatkunut kymmenen minuuttia kauemmin, olisi hän antanut
kasakkain hyökätä joukkoon. Hänestä olisi ollut ikävää, jos
ylioppilaita silloin olisi väkijoukossa ollut. Hän piti suomalaisia
ylioppilaita suuressa arvossa. Aleksanteri III:n adjutanttina hän oli
huomannut, kuinka tämä heitä kunnioitti.

Saman päivän iltana oli minulla neuvottelu osakuntien kuraattorien


kanssa ja päätettiin, että osakuntia kehoitettaisiin lausumaan
paheksumisensa mellakoiden johdosta. Ylimääräisissä kokouksissa,
joita pidettiin seuraavina päivinä, antoivat kaikki osakunnat
paheksuvia lausuntoja. Tutkimuksesta selveni sitäpaitsi, että
akateeminen nuoriso ei ollut mellakoihin puuttunut eikä sekautunut.
Vain yksi ainoa yliopiston kirjoissa oleva henkilö, maisteri R.
Malmström, oli todistettavasti ja oman tunnustuksensa mukaan
osallinen. Fysiikan laboratorion v.t. assistenttina hän oli opinto- ja
kurinpitosäännön ulkopuolella. Hänen asiansa tuli, sen jälkeen kuin
minä jo olin matkustanut ulkomaille, konsistorin käsiteltäväksi, joka
peruutti hänen virkamääräyksensä. Myös länsisuomalaisen
osakunnan kuraattorin G. Mattssonin sanottiin yleisesti olleen
mielenosoittajien joukossa. Hän vakuutti minulle kuitenkin, että huhu
oli perätön. Helmikuun viimeisenä päivänä jätin minä asiasta
kertomuksen sijaiskanslerille, joka heti lähetti sen kanslerille. Samoin
ilmoitin henkilökohtaisesti Schipoffille, että ylioppilaat eivät olleet
ottaneet osaa mellakoihin, jonka johdosta hän lausui mielihyvänsä.

Käyntini Plehwen luona tapahtui maaliskuun 4 p:nä kello 8 illalla


hänen kotonaan. Kun olimme vaihtaneet muutaman sanan minun
terveydestäni ja matkani tarkoituksesta, otti Plehwe puheeksi
helmikuun 5 p:n ylioppilaslaulun. Hänen mielestänsä tosin minun
menettelyni luvan antamisessa oli ollut asianmukainen ja yliopistoa
koskevien säännösten kanssa sopusoinnussa, mutta hän toivoi, että
rehtori vastedes hankkisi kenraalikuvernöörin suostumuksen,
ennenkuin antaisi luvan laulamiseen julkisella, avoimella paikalla.
Tätä edellytti asetus kokouksista, jota myöskin tässä kohden oli
noudatettava. Tässä oli, sanoi hän, kysymys vain muotoasiasta, sillä
kenraalikuvernööri oli vakuuttanut Plehwelle, että hän ei "tavallisissa
oloissa" kieltäytyisi antamasta suostumustansa.

Plehwe siirtyi sitten puhumaan helmikuun 18 p:n


levottomuuksista. Hän oli lukenut minun kertomukseni ja häntä
miellytti se, että ylioppilaat eivät olleet levottomuuksiin puuttuneet.
Hänen kysymykseensä, tulisiko Malmström rangaistavaksi, vastasin
minä, että hänen todennäköisesti olisi pakko jättää
assistentintoimensa, sittenkuin hänen syyllisyytensä oli
tuomioistuimen edessä toteennäytetty. Plehwe sanoi myöskin
kuulleensa, että erään ylioppilasosakunnan kuraattori oli asiaan
sekaantunut. Minä ilmoitin, että huhu tosin oli tiennyt sellaista
kertoa, mutta ei onneksi ollut näyttäytynyt todeksi. Minä olin
kuulustellut kyseessäolevaa henkilöä, ja hän oli jyrkästi kieltänyt
kaiken osallisuutensa eikä minulla ollut mitään syytä epäillä hänen
ilmoituksensa totuutta. "Oletteko varma siitä, että hän ei ole teille
valehdellut?" "Olen, Teidän Ylhäisyytenne." "Hyvä on." Plehwe pyysi
minua sijaiskanslerillekin ilmituomaan hänen mielihyvänsä siitä, että
ylioppilaat eivät olleet mukana, vaan olivat päinvastoin paheksuneet
puheenaolleita mellakoita. — Kun niistä oli puhe, lausui Plehwe
ihmettelynsä siitä, että Yrjö-Koskinen oli yleisön epäsuosion ja vainon
alainen. Hänhän oli asettunut järkevälle kannalle ja puhunut
mieleenpantavia sanoja. "Hänen kielipoliittinenko kantansa
epäsuosion syynä on ja ruotsinmielisetkö yleistä mielipidettä häntä
vastaan yllyttävät?" kysyi Plehwe. Minä vastasin, että jonkun verran
vanha puolueviha lienee asiaan vaikuttanut, mutta että se ei ollut
ollut päätekijänä. Ei suomenmielistenkään kesken suinkaan yleisesti
hyväksytty Yrjö-Koskisen poliittista kantaa, eikä ollut hänen
esiintymisensä ollut omansa rauhoittamaan vaan päinvastoin
lisäämään yhteiskunnan hermostuneisuutta.

Sanomalehdessä Moskovskija Vjedomosti oli ollut kirjoitus, jossa


m.m. oli väitetty, että Suomessa oli salainen separatistinen hallitus ja
että sen johdossa oli L. Mechelin ja että tämä hallitus oli helmikuun
18 p:n mielenosoitukset toimeenpannut. Tämän johdosta oli
kaksikymmentä yhteiskunnan huomattavaa jäsentä allekirjoittanut
vastalauseen, jonka sanomalehdet julkaisivat lähtöni edellisenä
päivänä. Plehwe sanoi lukeneensa vastalauseen ja nähneensä sen
alla minunkin nimeni. Hänestä tuntui kuin olisi vastalauseen
allekirjoittajina ollut vain ruotsinmielisiä, lukuunottamatta minua.
Minä selitin hänelle, että muutamat muutkin allekirjoittaneista olivat
suomenmielisiä. Kun minä mainitsin senaattori Ignatiuksen nimen, oli
Plehwe ilmeisesti sangen hämmästynyt siitä, ettei Ignatius kuulunut
ruotsalaismielisiin. Näistä seikoista oli hänellä vielä tähän aikaan
huonot tiedot. Hänelle oli ilmeisesti uskoteltu, että vastarinnan tekijä
oli ruotsalainen puolue; lienee tahdottu sillä tavoin hänen silmissään
halventaa sen merkitystä ja oikeata luonnetta. Plehwen puoleksi
moittivan äänensävyn johdosta sanoin minä, että en ollut arvellut
rehtorinasemani estävän minua allekirjoittamasta vastalausetta, vaan
että päinvastoin oli ollut siveellinen velvollisuuteni tehdä se, koska
sanomalehtikirjoituksessa oli ilmeinen valhe. Plehwe sanoi, että
hänen ei ollut tapana lukea Moskovskija Vjedomostia, mutta jos
kirjoituksessa, niinkuin näytti, oli tuotu esille väite salaisen
hallituksen olemassaolosta ja jos se syytti Mecheliniä poliittisesta
rikoksesta, ei hänellä ollut mitään huomauttamista vastalausetta
vastaan. Hän sanoi kuitenkin, että hänen oli pakko uskoa, että
Suomessa oli salainen poliittinen järjestö. Minä sanoin, että minun
tiedossani ei sellaista ollut. ("Kagaali" ei minun tietääkseni vielä
silloin ollut järjestäynyt.)

Siirryimme sitten muihin asioihin. Minä pyysin saada tehdä hänen


ylhäisyydellensä erityistä asiaa koskevan kysymyksen. Sijaiskanslerin
ja minun käydessä hänen luonansa joulukuussa oli hän sanonut, että
niitä professoreja, jotka hänen mielipiteensä mukaan julkisen
esiintymisensä kautta olivat pilanneet poliittisen asemansa, ei saisi
ehdottaa yliopistollisiin luottamustoimiin. Rehtoriin nämä ehdotukset
tosin muodollisesti eivät ollenkaan kuuluneet, vaan olivat
sijaiskanslerin tehtäviä, mutta rehtorille oli kuitenkin tärkeätä, että
osakunnilla oli sellaisia inspehtoreja, joihin he saattoivat luottaa ja
jotka saattoivat, vaikuttaa hyvää ylioppilaisiin. Plehwe katkaisi
puheen tähän kohtaan ja sanoi: "Minä arvaan, että Te tahdotte
lausua hyvän sanasen Wreden puolesta" ja hänen äänensä sävy
ilmaisi, että sensuuntainen puhe oli turhaa. Minä vastasin, että
tarkoitukseni ei ollut se, vaikka Wredestä tosin hänen osakuntansa
paljon pitikin. Minä aioin vain kysyä, vaatiko hän, että professori
Setäläkin luettaisiin niihin, joita oli mahdoton ehdottaa. Hän oli
minun mielestäni toimeen sangen sopiva mies ja muista, jotka nyt
saattoivat tulla kyseeseen, ei yhdelläkään ollut kaikkia tarpeellisia
edellytyksiä. Plehwe vastasi, että hän nimittäisi Setälän, jos häntä
ehdotettaisiin. Häntä tosin ei miellyttänyt hänen edellisenä kesänä
pitämänsä puhe, mutta hän ei tahtonut arvioida sen merkitystä
suureksi. Vielä muutama tyhjänpäiväinen lause, ja audienssi oli
lopussa.

Heinäkuussa 1901 tuli levottomin tuntein odotettu uusi


asevelvollisuusasetus julkisuuteen. Turholmissa Mechelinin
puheenjohdolla elokuun 3 p:nä pidetyssä kokouksessa päätettiin
toimittaa keisarille kansalaisadressi. Siitä tuli joukkoadressi, jonka
allekirjoitti noin puoli miljoonaa kansalaista. Siinä anottiin mainitun
asetuksen peruuttamista ja sotilasreformin toimeenpanemista
säätyjen myötävaikutuksella sekä "että perustuslait muutoinkin
tulisivat maan hallinnossa täydellisesti noudatetuiksi". Sijaiskansleri,
joka oli ottanut osaa Turholmin kokoukseen, oli adressin
allekirjoittajia, enkä minäkään ollut katsonut asemani rehtorina
saattavan olla minään esteenä. Jo syksyn alussa huhuiltiin, että
allekirjoituksia tarkasteltiin ja että luetteloa tehtiin niistä
korkeammista virkamiehistä, joiden nimet siinä olivat, sekä että
toimenpiteisiin heitä vastaan aiottiin ryhtyä.

Marraskuun 16 p:ksi oli Rein kutsuttu Pietariin, jolloin Plehwe oli


ilmaissut huolestumista siitä, että Rein oli allekirjoittanut adressin,
sekä pyytänyt häntä selittämään siihen johtaneet syyt. Siinä
tilaisuudessa oli sukeutunut pitkähkö keskustelu. [Katso Rein,
Muistelmia elämän varrelta, s. 430.] Plehwe oli silloin kysynyt sitäkin,
oliko myös rehtori ja muita yliopistonopettajia allekirjoittajien
joukossa. Rein ei mielestänsä ollut saattanut kysymykseen vastata,
mutta hän oli vakuutettu siitä, että asianomaiset henkilöt kysyttäessä
antaisivat asiasta todelliset tiedot. Plehwe oli silloin pyytänyt Reiniä
vaatimaan minulta sentapaista tietoa. Tämän johdosta ja erään
korkeassa asemassa olevan henkilön ehdottomasta kehoituksesta,
joka oli ollut Plehwen luona Reinin kanssa tapahtuneen keskustelun
jälkeen, päätin minä itse käydä v.t. kanslerin luona. Samalla
kuitenkin kutsuin konsistorin jäsenet yksityiseen neuvotteluun ja tein
selkoa tilanteesta sekä kysyin, katsoivatko he olevan syytä
kyseessäolevaan käyntiin sekä pitikö minun silloin ilmaista niitä
huolia, joilla mahdollista henkilövaihdosta sijaiskanslerintoimessa
odotettiin. Useimmat olivat sitä mieltä, että minun oli matkustettava
sekä myöskin tarpeellisella varovaisuudella kosketeltava
sijaiskanslerikysymystä. — Marraskuun 22 p:nä sain sähkösanoman,
että v.t. kansleri ottaisi minut vastaan 24 p:nä (sunnuntaina) klo 10
ap.

Minä tulin saapuville määrättyyn aikaan, mutta sain jotenkin kauan


odottaa puheillepääsyä. Senaattori Tudeer oli Plehwen vieraana.
Vihdoin hän tuli ulos ja minut kutsuttiin sisään. Hänen ylhäisyytensä
pyysi minua istumaan ja sanoi hyvin tylysti: "Te olette halunnut
puhella minun kanssani. Minä kuulen (j'écoute)." Minä sanoin, että
sijaiskansleri oli ilmoittanut minulle, että Plehwe oli tahtonut tietää,
olinko minä asevelvollisuusadressin allekirjoittajia sekä että minä olin
pitänyt oikeimpana antaa vastauksen henkilökohtaisesti. Minä olin
allekirjoittanut ja pyysin saada esittää syyt siihen sekä puhuin
pääasiallisesti seuraavaa: Kansalla oli tarve, jota ei käynyt
torjuminen, saada ilmaista huolensa asevelvollisuusasetuksen
johdosta, ja H. Majesteetilleen osoitettu adressi näytti olevan
lojaalisin muoto tämän tarpeen ilmaisulle. Suomessa vallitsevan
oikeuskäsityksen mukaan ei adressin lähettäminen hallitsijalle ole
vastoin lakia eikä ole ristiriidassa alamaisen uskollisuuden ja
kunnioituksen tunteiden kanssa. Yliopisto, jolla oli juurensa syvällä
kaikissa kansankerroksissa, ei saattanut olla syrjässä eikä tekeytyä
kylmäksi, kun tämänlaatuinen yleinen oikeuskäsityksen ilmaus
kansan taholta tapahtui. Kuitenkin olin arvellut velvollisuuteni olevan
harkita, saattoiko asemani rehtorina tuottaa minulle erityisiä
velvollisuuksia tässä asiassa. Minä olin tullut siihen tulokseen, että
allekirjoittaminen myös oli poliittinenkin velvollisuuteni, koska
päinvastainen menettely olisi ollut omiansa vaikuttamaan haitallisesti
toimintaani rehtorina. Rehtorin nimittivät hänen virkatoverinsa vaalin
perusteella ja hän oli siis ennen kaikkea heidän luottamusmiehenä.
Kun suhde oli sellainen, oli täydellinen yksimielisyys rehtorin ja
hänen virkatoveriensa kesken sekä luonnollinen että välttämätön.
Vieläkin vakavampi asia oli suhde nuorisoon. Jollen minä tässä
tärkeässä kysymyksessä, joka niin suoraan ja syvästi koski
akateemista nuorisoa, olisi uloskinpäin osoittanut oikeuskäsitystäni ja
yhteistuntoa meidän keskemme, heidän vanhempainsa kanssa ja
yliopiston muiden opettajien kanssa, niin olisi menettelytapani aivan
luonnollisesti heikontanut sitä luottamukseen perustuvaa vaikutusta,
joka rehtorilla on oleva nuorisoon.

Plehwe vastasi pitkähköllä lausunnolla. Hän sanoi ymmärtävänsä


minun poliittiset motiivini, mutta ne eivät olisi saaneet asiaa
ratkaista. Virkamiehellä ovat aina lähimmät velvollisuudet H.
Majesteettiansa kohtaan. Osoittaen minua sanoi hän: "sen, jolla on
tuo univormu (minulla oli ylläni virkatakkini) ja tuo kunniamerkki,
tulee ennen kaikkea muistaa, että hän palvelee keisaria". Hänelle oli
tuottanut paljon huolta (tristesse), että sijaiskansleri ja rehtori olivat
allekirjoittaneet adressin ja että hänen ehkä oli pakko esittää meidät
erotettaviksi. Siitä saattaisi johtua epäjärjestyksiä yliopistossa. Niiden
estämiseksi oli olemassa tehokas keino, yliopiston sulkeminen, ja
siihen oli ehkä turvauduttava. Venäjällä oli puolue, jonka käsityksen
mukaan yliopisto oli suomalaisen separatismin liesi, ja se puolue oli
nyt saanut vettä myllyynsä. Maan säädyt olivat antaneet lausuntonsa
asevelvollisuuslaista ja H. Majesteettinsa oli sen kautta saanut tiedon
kansan mielipiteistä ja ajatustavoista. Sillä ei ollut oikeutta yrittää
tuoda esille ajatuksiansa millään muulla tavalla, joten adressi oli
moitittava.

Minä lausuin, että me Suomessa varmaankin olimme yhtä lojaalisia


kuin H. Majesteettinsa venäläiset alamaiset, mutta että
lojaalisuuskäsite meillä oli toisenlainen kuin Venäjällä. Adressi oli
ollut lojaalinen meidän käsityksemme mukaan. Jos taas vaadittiin,
että meidän kansamme ajatuksen laista ja oikeudesta piti muuttua
päivä päivältä uudeksi, niin se oli kohtuuton ja mahdoton vaatimus.
Mitä minuun yksityisesti tuli, en koskaan ollut epäillyt oikeuttani
allekirjoittaa adressi rikkomatta lojaalisuutta, johon olin velvollinen.
Minun kohdallani oli kysymys vain siitä, pitikö minun käyttää
oikeuttani vai eikö, ja minä olin yhä edelleen vakuutettu siitä, että
velvollisuuteni vaati edellistä. Muuten minulla ei ollut mitään sitä
vastaan sanottavana, että paikkani jättäisin, sitäkin suuremmalla
syyllä siksi, että rehtoriaikani kohta oli lopussa. Vaali olisi
toukokuussa. Minä katsoin velvollisuudekseni tässä yhteydessä
kanslerille huomauttaa, että vaikkakaan yliopiston ulkonaista rauhaa
ja järjestystä ei oltu häiritty, mieliala ylioppilastenkin keskuudessa oli
hyvin kiihoittunut ja että syynä siihen oli osaksi
asevelvollisuusasetus, osaksi erinäiset kenraalikuvernöörin
toimenpiteet, santarmilaitos y.m. Niin kauan kuin nuorisolla oli
luottamusta hallitusmiehiinsä, saatettiin rauha säilyttää, mutta
senvuoksi saattoi sijaiskanslerinvaihdos myös olla kohtalokas, koska
se saattoi antaa ensimmäisen aiheen mielenosoituksiin ja
epäjärjestyksiin, joiden seuraamuksia oli mahdoton etukäteen
laskea. Plehwe ei vastannut siihen mitään, vaan oli huolestuneen
näköinen. Aikaisempiin huomautuksiini oli hän vastannut, että
kouluylihallituksen päällikkö Yrjö-Koskinen ei ollut adressia
allekirjoittanut ja että hän uskoi, ettei myöskään postilaitoksen
päällikkö Lagerborg ollut sitä tehnyt. Minä sanoin, etten tiennyt siitä
mitään. Myöskin sitä kysyi Plehwe, olivatko kaikki yliopistonopettajat
tuon ikävän asiapaperin allekirjoittajia. Minä sanoin, etten saattanut
vakuuttaa kaikkien sitä tehneen, mutta varmaan useimmat olivat
mukana. Edelleen selitin, kun Plehwe sitä kysyi, että mitään yhteistä
neuvottelua asiasta ei ollut ollut.

Plehwe, joka nyt oli heittänyt ylväänankaran äänensävynsä, sanoi


tahtovansa puhua jonkun sanan toisesta kysymyksestä. Hän oli
edellisenä keväänä puhunut Reinin kanssa uusien virkojen
perustamisesta yliopistoon Venäjää koskevien aineiden opetusta
varten. Se memorandum, jonka sijaiskansleri oli hänelle lähettänyt,
ei häntä tyydyttänyt. Ainakin kolme tahi neljä uutta virkaa piti
perustettaman, niinkuin Venäjän kirjallisuuden, Venäjän historian ja
venäläisen oikeuden, ja näihin oli määrättävä venäläisiä miehiä. Hän
kehoitti minua avoimesti lausumaan, mitä mieltä sellainen
toimenpide herättäisi yliopistossa. Minä vastasin kysymykseen
selittämällä niitä seikkoja, joita yliopiston asia oli huoltaa,
huomauttaen, että uudet opetusalat yleensä olivat korkeakoululle
tervetulleet, ja että kenelläkään ei saattanut olla mitään sanottavaa
siihen, että ne ylioppilaat, jotka sitä toivoivat, saivat tilaisuuden
laajentaa tietojansa Venäjästä ja Venäjän oloista, mutta näiden
aineiden opettajilla piti tieteellisesti ja muuten olla sama asema kuin
muilla yliopistonopettajilla, olematta erikoislaatuisena joukkona
erikoisine tehtävineen. Välttämätön ehto, jota ilman sanotut
opettajat eivät voisi mitään aloillansa toimittaa, oli se, että he
osaisivat maan kieltä. Plehwe kuunteli tekemättä yhtään
huomautusta, mutta teki vielä muutaman kysymyksen yliopiston
kielioloista, joista m.m. ilmeni, että hän ei ollut selvillä siitä, että
yliopistonopettajilla piti olla sellainen suomenkielentaito, että he
voivat antaa opetusta tällä kielellä. Viimeksi kyseli Plehwe
uusmaalaisesta osakunnasta, jota kohtaan hänellä ilmeisesti jo silloin
oli suuria epäilyksiä ja joka usein antoi aihetta keskusteluillemme ja
kanslerin rehtorille tekemiin kyselyihin.

Ylioppilasten kansanvalistustyö 1899—1903.


Akateeminen nuoriso oli jo vuosikymmenet harrastanut
kansanvalistuksen asiaa ja henkilökohtaisesti etupäässä pitämällä
kansantajuisia esitelmiä tieteellisistä ja isänmaallisista aineista
koettanut edistää tietojen ja valistuksen leviämistä kansan
pohjakerroksiin. Oli luonnollista, että 1899 kevättalven tapausten
maassa herättämä isänmaallinen mieliala myöskin ilmenisi
innokkaammassa työssä tällä alalla. Osakuntien
kansanvalistustoimikunnat ja ylioppilasten yhteinen
kansanvalistustoimikunta oli tavallista vilkkaammassa toiminnassa,
hankkien ja levittäen kansankirjasia, toimeenpannen kokouksia ja
esitelmiä maaseudulla y.m. Tämä kansan valistamisen into herätti
maan kenraalikuvernöörin huomiota ja epäluuloa, joka oli
taipuvainen näkemään siinä poliittista agitatsionityötä. Tämän
ylioppilasten toimintaa vastaan tehdyn sotaretken ensimmäiset
välähdykset nähtiin syksyllä 1899.

Ensimmäinen ilmianto, josta v.t. kenraalikuvernööri ilmoitti


rehtorille, voidaan, koska sillä on vähäinen merkitys, tässä sivuuttaa.
Se koski erästä ylioppilas B:n Lappvikissa pitämää esitelmää ja
osoittautui oleellisilta kohdiltaan perättömäksi. Asiasta aiheutui
käynti kenraali Schipoffin luona ja selvitettiin kaikessa rauhassa,
sittenkuin oli vähän keskusteltu nimettömistä ilmiannoista.

Lokakuun 12 p:nä sain kenraalikuvernöörinkanslian johtajalta,


eversti v. Minkwitziltä kirjeen, jossa ilmoitetaan kenraalikuvernöörin
tietoon tulleen, että Turussa markkina-aikana oli toimeenpantu
kansankokous, jonka järjestämiseen ylioppilaat olivat "innolla
ottaneet osaa". M.m. kerrottiin erään ylioppilas Rinteen pitäneen
tervehdyspuheen sekä siinä lausuneen sen kehoituksen, että kaikki
suomalaiset "yhtyisivät viimeiseen veripisaraan puolustamaan
oikeuksiansa, jotka helmikuun 3 p:n manifesti oli tallannut
jalkoihinsa" j.n.e., jonka ohella Eugen Wolffin puhetta sanottiin
jaetun yleisön keskuuteen. Kenraalikuvernööri kehoitti minua
ryhtymään toimenpiteisiin, jotta "asia niin perinpohjin kuin
mahdollista selvitettäisiin ja, jos hyväksi näkyisi, syylliset, jos niitä
löytyisi, saatettaisiin edesvastuuseen". Kirjeessä sanotaan edelleen:
"Kun H. Ylh. toisaalta ei voi sallia, että hänelle armossa uskotussa
maassa ylioppilaat avoimesti tekevät poliittista kiihoitustyötä, joka on
tähdätty H. Majesteettinsa toimenpiteitä ja käskyjä vastaan, niin on
hän toisaalta sitä mieltä, että on vain oikeuden ja kohtuuden
mukaista, että se, mikä siten oli tullut hänen tietoonsa yliopiston
asioista, jonka kunnia ja hyvä maine on niin lähellä hänen
sydäntänsä, ei jäisi selvittämättä."

Käydessäni v. Minkwitzin luona ilmoitti tämä minulle, että kirjelmän


oli sanasta sanaan laatinut kenraalikuvernööri Bobrikoff itse ja että
hän vain oli käännättänyt sen venäjästä. Tämä seikka ja niinikään
kirjeen sävy näytti minusta osoittavan, että ei ollut kysymys vain
yhdestä yksityisestä tapauksesta, vaan ylimalkaan ylioppilasten
toiminnasta kansanvalistusapostoleina.

Lähinnä seuraavina päivinä toimeenpantiin tutkimus ja voitiin


todeta, että ilmianto, ainakin mikäli se koski ylioppilaita, oli aivan
perätön. Rinteen puhe ei ollut ensinkään sisältänyt politiikkaa, vaan
koski markkinain syntyä ja niiden taloudellista merkitystä. Toinen
ylioppilas oli pitänyt esitelmän Pietari Brahesta ja toinen lopetti
kokouksen muutamilla sanoilla, joissa ei ollut moitteen sijaa. Puhetta
"viimeisestä veripisarasta" ei kukaan ollut kuullut ja se johtui ehkä
erään tilaisuudessa lauletun virrensäkeistön sanojen
väärinkäsittämisestä. Ylioppilaat eivät olleet jaelleet muita kirjoituksia
kuin lauluvihkosen. Kaikki tämä esitettiin vastauskirjelmässä v.
Minkwitzille. Sen ohella lausuttiin siinä seuraavaa:
"Kun nyt jo toisen kerran lyhyen ajan kuluessa tämänlaatuinen
perusteeton syytös suunnataan ylioppilaskunnan jäseniä vastaan,
niin on mielestäni minun, jonka lähinnä tulee sekä valvoa
akateemisen nuorison käytöstä ja menettelyä että pitää huolta sen
oikeuksista, huomautettava, että tuontapaiset nimettömät,
parhaassa tapauksessa tietämättömyydestä lähteneet väärät
ilmiannot, sekä tästä nuorisosta, jonka hyvä käytös kuitenkin näinä
aikoina on saavuttanut yleistä tunnustusta, että yliopiston
hallituksesta, pakostakin tuntuvat loukkaavilta ja herättävät
nuorisossa katkeria tunteita. Tieto, että ovat alttiina lain edessä
vastuuttomien ilmiantajien syytöksille, ei suinkaan ole omiansa
edistämään sitä rauhaa yliopiston keskuudessa, jota sen
hallitusmiehet niinkuin myös itse opiskelevat koettavat ylläpitää.

"Samalla kuin ystävällisesti pyydän, että Herra Eversti


hyväntahtoisesti H. Ylh. Kenraalikuvernöörin tietoon saattaa tämän
minun kunnioittaen lausumani ajatuksen, rohkenen myös pyytää H.
Everstin tilaisuuden tullen H. Ylhäisyydellensä huomauttamaan, että
oikeuden mukaan ei voi olla tuntematta kunnioitusta ja antamatta
tunnustustansa ylioppilaillemme siitä, että he nyt, niinkuin ovat jo
vuosikymmenet tehneet, uhraavat osan opinnoista vapaata aikaansa
levittääksensä valistusta ja tietoja tässä suhteessa vähempiosaisille
maanmiehillensä. Yliopiston hallinnolla on ollut täysi syy täydellisesti
luottaa siihen, että opiskelevat kaikissa suhteissa täysin lojaalisti
suorittavat tämän itseottamansa, uhrautuvan työn, jonka he ovat
käsittäneet siveelliseksi velvollisuudeksensa."

Päätin kuitenkin henkilökohtaisesti käydä kenraalikuvernööri


Bobrikoffin luona, johon minulla oli sitä enemmän syytä, koska en
vielä ollut käynyt häntä tervehtimässä.
Käynti tapahtui lokakuun 26 p:nä, sittenkuin hänelle oli tehty
selkoa kirjelmästäni von Minkwitzille. Minä koetin panna keskustelun
alulle saksaksi, mutta koska Bobrikoff vain vaillinaisesti osasi sitä
kieltä, pyysi hän minua puhumaan ruotsia ja kutsui adjutanttinsa
tulkitsemaan venäjäksi ja venäjästä. Sittenkuin oli vaihdettu
muutama sana Turun tapahtumasta, lausui kenraalikuvernööri, että
ylioppilaitten yleensä ei pitäisi olla mukana puuhaamassa sellaisia
kokoustilaisuuksia, ja huomautti, että ylioppilasten kansanvalistustyö
katsoen kansakoululaitoksemme erinomaiseen tilaan ei ollut tarpeen
vaatimaa. Minä sanoin siihen, että vain viidesosa kouluiässä olevista
lapsistamme käy kansakoulua ja että suuri osa vanhempaa polvea ei
edes ollut saanut välttämättömimpiä alkeistietoja, että paljon oli
kansanvalistustyössä tehtävää virallisen opetuksen rinnalla sekä että
ylioppilaat pitivät tätä työtä luonnollisena velkanansa sille kansalle,
jonka kustannuksella he olivat saaneet kasvatuksensa. Minä tulin
keskustelussa maininneeksi myös opinto- ja kurinpito-säännön, jossa
tarkoin määrätään, mitä ylioppilasten tulee varteen ottaa, mutta
jossa ei ole mitään kieltoja esitelmäin pitoa vastaan.
Kenraalikuvernööri kysyi silloin, oliko esitelmätoiminta siinä erittäin
mainittu luvallisena, johon minä vastasin, että ei ollut, mutta
huomautin, että meidän käsityksemme mukaan se, mikä ei ole
kiellettyä, on luvallista, mikä ei näkynyt olevan hänen ajatuksensa.
Hän myönsi, että saattoi ajatella sellaista kansanvalistuksen
levittämistä hyväksi ja hyödylliseksi, mutta kun maan olot olivat
sellaiset kuin sillä hetkellä, niin sellainen toiminta ei ollut sopiva,
koska se aikaansai entistä suurempaa levottomuutta kansan
keskuudessa. Tämä työ oli lykättävä kahden vuoden ajaksi. Kun
huomautin, että yliopiston viranomaiset eivät voineet eivätkä
tahtoneet sekautua tähän ylioppilasten toimintaan niin kauan kuin
siinä ei ilmennyt mitään moitittavaa, vastasi kenraalikuvernööri, että
hän tahtoi sitä vain yliopiston etua silmälläpitäen, sillä itse saattoi
hän kyllä hankkia itselleen oikeuden kieltää nämä kansantajuiset
esitelmät. Kun minä viittasin sellaisen teon mahdollisiin seurauksiin,
sanoi kenraalikuvernööri, että hän toivoikin, ettei niin ankariin toimiin
ryhdyttäisi. "Man soll sehr vorsichtig sein" lisäsi hän saksaksi. Hän
vakuutti luottavansa yliopiston viranomaisiin, josta minä kiitin ja
nousin jättämään hyvästi.

Kaksi viikkoa myöhemmin kävimme v.t. sijaiskansleri Rein ja minä


aikaisemmin syksyllä nimitetyn uuden ministerivaltiosihteerin von
Plehwen luona. Käyntimme tarkoitus oli ministerivaltiosihteerille
jättää se adressi, jonka konsistori oli päättänyt H. Majesteetillensa
lähettää. Sittenkuin pääkysymyksestä oli puhuttu, otti Plehwe
puheeksi ylioppilaitten kansantajuiset esitelmät, joista
kenraalikuvernööri, lähinnä minun käyntini johdosta, oli antanut
raportin. Minä esitin lyhykäisesti tämän työn merkitystä, joka ei ollut
ajalle outoa, sekä huomautin sen ihanteellista tarkoitusta ja sen
merkitystä ylioppilaille itsellensä.

Kun minun oli pakko olettaa, että lyhyt, niukka keskusteluni


Plehwen kanssa ei ollut voinut antaa hänelle oikeata käsitystä
ylioppilaitten mainitun toiminnan laadusta ja kun tiesin, että toiselta
taholta hänen mielipiteisiinsä vaikutettiin, kirjoitin kotiin palattuani
asiasta perinpohjaisen selonteon, joka ranskalaisena käännöksenä
lähetettiin hänelle kirjeenä minulta.

Kirjoitus sisälsi pääasiassa seuraavaa: Ylioppilasten


kansanvalistustyö on alkuisin 1840-luvulta ja senjälkeen sitä on
jatkunut eri aikoina erilaisella ponnella ja lujuudella.
Ylioppilasosakunnissa oli kansanvalistuskysymys aina ollut
keskustelujen alaisena ja oli pidetty akateemisen nuorison
luonnollisena velvollisuutena edistää sivistyksen ja tietojen
levittämistä oman kotiseutunsa kansan keskuuteen. Tässä
tarkoituksessa olivat osakunnat toimittaneet julkisuuteen
kansankirjasia, tehneet aloitteita kansankirjastojen perustamiseksi
y.m. Loma-aikoina olivat ylioppilaat kotiseuduillansa kansalle pitäneet
helppotajuisia esitelmiä yleissivistävistä tahi
käytännöllistaloudellisista aineista ja muuten olleet avustajina
kansanjuhlissa ja muissa yrityksissä, joiden tarkoituksena oli ollut
kansan siveellisen kukoistuksen kohottaminen. Tämä vapaaehtoinen
toiminta oli samalla vaikuttanut kasvattavasti ja kehittävästi
ylioppilaisiin itseensä. Ennen ei ollut tapahtunut, että kukaan maan
kenraalikuvernööreistä olisi saanut aihetta olemaan tyytymätön
tähän työhön tahi katsellut sen pyrintöä millään epäluulolla.

Kirjelmässä mainitaan sitten, että kenraalikuvernöörille tehtyjen


ilmiantojen perusteella rehtori kaksi kertaa syksyn kuluessa oli
saanut käskyn tutkia ylioppilasten pitämiä esitelmiä ja että syytös
kummassakin tapauksessa oli osoittautunut vääräksi. Sopimatonta ja
erittäin ylioppilaalle muodotonta esiintymistä oli ehkä jossakin
sattunut, mutta yhtään tämäntapaista positiivista tapausta ei ollut
vielä esilletuotu. Joka tapauksessa olivat rehtori ja osakuntien
inspehtorit pyytäneet ylioppilaita olemaan sekoittamatta
kansanvalistustyöhönsä politiikkaa, koska se ei sopinut heidän
toimintaansa.

Sittenkuin esimerkeillä oli valaistu niiden aineiden laatua, joita


ylioppilaat olivat esitelmiänsä varten valinneet, sekä niiden yhteyttä
esitelmöitsijän oman opintoalan välillä, sanottiin kirjelmässä:
"Erittäinkin on viime aikoina, ja ehkä viime kesänä enemmän kuin
ennen, huomiota kiinnitetty sellaisiin kysymyksiin, jotka tarkoittavat
kansan edistymistä uskonnollisessa, siveellisessä ja taloudellisessa
suhteessa, niinkuin kysymyksiin jumalanpelon siunauksesta, lain
pyhyydestä, raittiudesta, säästäväisyydestä, yhteistoiminnasta
maanviljelyksessä y.m. sekä niihin työväenkysymyksen hävittäviin
oppeihin, jotka viime aikoina ovat juurtuneet meidänkin maahamme,
ja niihin valheellisiin ja levottomuutta herättäviin huhupuheisiin
maanjaosta, joita kiertävät kaupustelijat ja muut siveellisesti
rappeutuneet ovat yrittäneet levittää tilattoman väen keskuuteen. —
— — Kaikesta tästä voinee T. Ylh. huomata, että ylioppilasten
kansanvalistustyöllä on siveellinen, yhteiskuntaa säilyttävä päämäärä
ja että kaikenlainen kansaakiihoittava ja yhteiskuntaa mullistava
pyrkimys on sille vierasta."

Minulla on syytä olettaa, että tämä tässä lyhyesti selostettu esitys


ja vetoomus Plehween, joka pian sen jälkeen nimitettiin yliopiston
v.t. kansleriksi, jonkun verran vaikutti kysymyksen lähimpään
kehitykseen, että se nim. vaikutti siihen suuntaan, että ylioppilasten
esitelmätoiminnan valvonta, jota kenraalikuvernööri oli vaatinut,
jätettiin yliopistoviranomaisten, lähinnä rehtorin käsiin.

Matkustaessani Berliniin kävin tervehdyskäynnillä Plehwen luona


seuraavan vuoden (1900) maaliskuun 15 p:nä, ja tapahtui käyntini
aamulla hänen asunnossansa. Hän otti minut ystävällisesti vastaan,
teki minulle muutamia yliopistoasioita koskevia kysymyksiä, sanoi
haluavansa keskustella pitempään minun kanssani ylioppilasten
kansanvalistustyöstä ja pyysi minua tätä tarkoitusta varten käymään
hänen luonansa Berlinistä palatessani. Hän ei tahtonut kieltää tätä
työtä — se ei ilmeisesti olisi ollut viisasta — mutta sitä piti paikallisen
hallinnon valvoa. Yliopistoviranomaisten piti siitä jossain määrin
vastata. Mitään poliittista ei esitelmissä saisi olla ja lupa niiden
pitämiseen oli annettava vanhemmille ylioppilaille, joilla tässä asiassa
on tarpeeksi arvostelukykyä. Hän pyysi minua punnitsemaan asiaa.
Sovittu toinen käyntini tapahtui maaliskuun 25 päivänä.
Ylioppilasten esitelmistä Plehwe lausui, että on olemassa kaksi
vaihtoehtoa, joko kokonaan kieltää ne tahi asettaa ne hallinnollisen
valvonnan alaisiksi? Edellinen ei olisi, toisti hän nytkin, viisasta,
jälkimmäisessä toimenpiteessä piti yliopistoviranomaistenkin olla
mukana. Niiden ylioppilasten, jotka aikoivat esitelmiä pitää, piti
pyytää siihen lupa rehtorilta, jonka myös oli tutkittava aineen
sopivaisuus ja annettava lupakirja, joka oli näytettävä asianomaiselle
paikalliselle viranomaiselle. Kun hän kysyi, mikä nuorison käsitys
asiasta oli, lausuin minä, että joskin toimenpide saatettaisiin ajaa läpi
ilman mitään sen puolelta tapahtuvia mielenosoituksia, niin se
kuitenkin herättäisi tyytymättömyyttä. Minä huomautin myöskin
kuinka huonosti perusteltua sellainen valvonta oli ja vielä kerran
painostin esitelmätoimen puhtaasti sivistyksellistä merkitystä. Hän
lausui siihen muun muassa, että tämä työ normaalioloissa voi olla
vain hyödyksi, mutta olot olivat sillä kertaa toisenlaiset, kun
yhteiskunta oli sairas. Hermostunut ja sairas elimistö ei siedä samaa
kuin terve. Rehtori ei sitäpaitsi saattanut mennä vastuuseen siitä,
että ei väärinkäytöstä voinut tapahtua, jos esitelmiä pidettiin ilman
valvontaa. Aina saattoi niin lukuisan nuorisojoukon kesken kuin
ylioppilaskunnan olla jokunen "mauvais sujet". Kun minä kysyin
häneltä, kuinka hän oli arvellut esim. luonnontieteellisen tahi
historiallisen esitelmän voivan vaikuttaa levottomuutta herättävästi
asujamiin, sanoi hän: Miksi ei historiallinen saattaisi sitä tehdä? Ei
tarvita muuta kuin että kuvaa menneitten aikojen oloja ja sitten
vertailee niihin nykyisiä ja liittää siihen jonkun poliittisen mietelmän.
Valtio-opillisia esitelmiä pitäisi kokonansa karttaa j.n.e. Minä pyysin,
että saisin puhua asiasta nuorison kanssa ja sitten ilmoittaa hänelle
sen epäilykset, johon hän suostui.
Kotiin palattuani minä yksityisesti ilmoitin ylioppilasosakunnille,
mitä kansleri oli ilmoittanut kansantajuisten esitelmäin valvonnasta.
Kun oli pidetty neuvottelu kuraattorien kanssa, päätettiin, että
osakunnat jättäisivät rehtorille kirjelmän, josta nuorison käsitys
asiasta ilmenisi, ja jonka rehtori osoittaisi v.t. kanslerille. Tämän
kirjelmän, joka oli päivätty huhtikuun 17 p:nä, allekirjoittivat kaikkien
osakuntain kuraattorit ja se oli osoitettu rehtorille. Kuvattuansa
ylioppilaitten esitelmätoimintaa lausuivat allekirjoittajat
rohkenevansa toivoa, "että valistunut ja puolueeton tarkastaja ei
tästä toiminnasta löytäisi jälkeäkään tuomittavasta ja rajoittavia
toimenpiteitä ansainneesta agitatsionista". Ne syytökset, joita tässä
suhteessa pahansuovat ja rappiolle joutuneet henkilöt olivat tehneet,
olivat osoittautuneet perättömiksi. Ylioppilaat eivät olleet
väärinkäyttäen menettäneet sitä luottamusta, jota yliopiston
viranomaiset olivat heille osoittaneet, ja sitä raskaammalta tuntui
odotetun toimenpiteen vääryys. Sitten huomautettiin erinäisistä
käytännöllisistä vaikeuksista, jotka johtuisivat siitä, että rehtori
hankkisi lupatodistuksen, ja, jos tämä todistus vielä oli näytettävä
paikalliselle järjestysvallalle, niin se alensi ylioppilaat samanarvoisiksi
yhteiskunnan halveksituimpien, valvonnan alaisten henkilöiden
kanssa. (Rajoittava asetus kokouksista ei silloin vielä ollut julkaistu.)
Sellainen toimenpide ei loukkaisi ainoastaan ylioppilaan tunteellista
mieltä, joka oli tottunut toimimaan täysin vapaasti lain määräämissä
rajoissa, vaan koko maamme asujamistoa. Ylioppilasten asettaminen
valvonnanalaiseen luokkaan lisäisi suuressa määrin sitä
tyytymättömyyttä, joka erinäisten toimenpiteiden vuoksi, joihin
muilla aloilla viime aikoina oli ryhdytty, täyttää koko yhteiskunnan.
Olisi myöskin vastenmielistä ja oikeustajunnan vastaista, että rehtori
tai yliopisto tehtäisiin vastuunalaiseksi yksityisten ylioppilasten
ajattelemattomuudesta. Suomen ylioppilaat olivat, sorronkin aikoina,
alati esiintyneet rauhallisesti ja arvokkaasti, niinkuin tunnustettu oli.
He eivät tiedä ansainneensa sitä tyytymättömyyttä, jota toimenpide
osoittaa. Kirjelmä päättyi täten:

"Sentähden rohkenemme me, Suomen ylioppilaat, kääntyä Herra


Rehtorin puoleen sillä nöyrällä pyynnöllä, että Herra Rehtori
suvaitsisi H. Ylhäisyydelleen v t. Kanslerille esittää meidän
ajatustemme ja levottomuutemme ilmauksen, samalla lausuen
meidän lämpimimmän toivomme olevan, että H. Ylh., joka on
valistunut ja tieteiden ja oikeuslaitoksen jalossa koulussa kasvanut
mies, ylevämielisesti antaisi sen toimenpiteen raueta, joka liian
tuskallisella tavalla koskisi akateemisen nuorison, vieläpä koko
kansamme parhaita sivistyspyrintöjä."

Tämän johdosta laadittiin kanslerille kirjelmä, jossa minä ehdotin,


että aiottu toimenpide ainakin lykättäisiin, niin että kansleri antaisi
sen toteuttamisen riippua kesän aikaisesta kokemuksesta esitelmien
alalla. Ennenkuin kirje oli ehditty lähettää, tuli ilmoitus, että Plehwe
piakkoin tulisi käymään Helsingissä. Minulla olisi silloin tilaisuus
henkilökohtaisesti hänelle jättää ylioppilasten kirjelmä.

Samaan aikaan saapui kuitenkin kanslerilta kirje sijaiskanslerille


esitelmäkysymyksestä. Kirje sisälsi m.m. seuraavaa:

— — — Sellainen toiminta yliopistonuorison puolelta, kun ottaa


huomioon sen vaikuttimet, ansaitsee yleensä vain rohkaisua. Siitä
huolimatta ei voi kieltää — — — että tämä toiminta viimeksi
kuluneena vuonna on antanut aihetta siihen, että muutamia
esitelmiä ei voi pitää yleisen järjestyksen etujen mukaisina.
Sentapaiset ilmiöt voivat vastedeskin uusiutua, jos suunniteltujen
esitelmien aineiksi valitaan kysymyksiä, jotka koskevat maan
nykyistä poliittista asemaa, varsinkin jos esitelmän pitäjä puuttuvasta
kypsyydestä tai kykenemättömyydestä selvästi ja yhtenäisesti
ilmaista ajatuksensa, lausuu arvosteluja, joita kuulijat käsittävät ja
tulkitsevat väärin. Koettaen parhaani mukaan poistaa Keis.
Aleksanterin-Yliopiston akateemisesta elämästä kaikki sellaiset
seikat, jotka voivat häiritä sen rauhallista ja normaalia kulkua, olen
ylläesitetyistä syistä katsonut toivottavaksi, että ne ilmoitukset ja
esitelmät, joita ylioppilaat pitävät, alistettaisiin yliopistoviranomaisten
tarkastettaviksi, jolloin voitaisiin a) asettaa ehdoksi saada oikeus
pitää esitelmiä yliopiston rehtorin lupa siihen, b) rajoittaa
esitelmöitsijäin piiri akateemisen nuorison kypsyneimpiin edustajiin
(esim. fil. kandidaatteihin ja ylioppilaihin, jotka ovat olleet yliopiston
kirjoissa useampia lukukausia), c) antaa lupa esitelmiin vain aineissa,
jotka kuuluvat esitelmän pitäjän erikoisalaan, d) vaatia tämän
esittämään enemmän tai vähemmän seikkaperäinen ohjelma aiotun
esitelmän sisällyksestä, c) kokonaan kieltää esitelmät sellaisista
kysymyksistä, jotka kuuluvat valtio-oikeuteen j.n.e. Kansleri pyysi,
että v.t. sijaiskansleri ja rehtori mahdollisimman pian antaisivat
hänelle lausuntonsa asiasta.

Kansleri saapui kaupunkiin huhtikuun 25 päivän aamuna.


Käydessäni hänen luonaan seuraavana aamuna oli meillä lyhyt
keskustelu. Kun Plehwe silloin kosketteli kirjelmäänsä ylioppilasten
esitelmäin valvonnasta, käytin tilaisuutta mainitakseni ylioppilasten
minulle lähettämän kirjelmän ja jätin sen hänelle (ranskalaisena
käännöksenä). Hän pani sen syrjään ja rupesi puhumaan toisesta
asiasta. Minä toivoin kuitenkin, että hän ei jättäisi
huomioonottamatta ylioppilasten mielipidettä
kansanvalistuskysymyksestä, minkä vuoksi otin asian uudelleen
puheeksi. Hän otti silloin paperin uudestaan käteensä, silmäili sen
läpi, kohautti olkapäitään ja lausui, että hän hyvin ymmärsi
ylioppilasten käsityksen, mutta että valvonta oli välttämätön. Hänen
suhtautumisensa kysymykseen ei johtunut epäluulosta, vaan tahtoi
hän päinvastoin osoittaa luottamustaan yliopistolle, kun hän pani
valvonnan sen omien viranomaisten käsiin. Periaatteessa, sanoi hän,
ei voinut muutosta tapahtua, mutta yksityisseikkoihin nähden voivat
sijaiskansleri ja rehtori tehdä mitä ehdotuksia tahansa.

Nyt oli siis noudatettava kanslerin kehoitusta sijaiskanslerille ja


rehtorille, että nämä antaisivat lausuntonsa esitelmien järjestämistä
koskevasta valvonnasta. Koska asia oli minulle hyvin läheinen, ja
valtioneuvos Rein promoottorina oli hyvin kiinni samana keväänä
olevan promotsionin järjestelyissä, laadin minä hänen
suostumuksellansa kirjelmän, jonka Rein hyväksyi ja omassa
nimessään lähetti v.t. kanslerille. Sitä ennen oli minulla kuitenkin
ollut neuvottelukokous kaikkien kuraattorien kanssa ja olin antanut
heille tiedon ehdotuksestani, jonka he pääasiassa hyväksyivät.
Kirjelmässä lausutaan vakaumus, että kansleri ei ilman pakottavia
syitä ryhtyisi kyseessäolevaan toimenpiteeseen, jonka jälkeen
sanotaan: "Jos Teidän Ylh. katsoo poliittisen aseman maassa tekevän
ylioppilasten kansanvalistustoiminnan valvonnan välttämättömäksi,
niin rohkenen minä lausua sen toivomuksen, että sellainen
toimenpide tulisi olemaan väliaikaista laatua, koskien vain lähintä
tulevaisuutta. Sen sisältö tulisi silloin selvemmäksi akateemiselle
nuorisolle, ja tähän saakka nautitun vapauden menettäminen
tuntuisi sille vähemmän raskaalta." Sitten esitetään niitä yleisiä
näkökohtia, joita valvontaa järjestettäessä sopi ottaa huomioon, ja
ehdotetaan seuraavaa määräystä:

"Ylioppilaan, joka haluaa maaseudulla pitää kansantajuisia


esitelmiä kansalle, on ilmoitettava aikomuksensa osakuntansa
kuraattorille, jolloin myöskin esitelmän aine on ilmoitettava, sekä,
mikäli mahdollista, jätettävä lyhyt kirjallinen yhteenveto sen
sisällöstä. Sitten kuin asianomainen osakunta valiokunnan kautta,
johon kuraattorin tulee kuulua, on tarkastanut erityiset, tässä
tarkoituksessa tehdyt ilmoitukset ja lausunut mielipiteensä
puoltavasti tai kieltävästi niistä, jätetään hyvissä ajoin ennen
lukukauden loppua kaikki ilmoitukset rehtorille, jolla harkintansa
mukaan, jolloin on otettava huomioon sekä ylioppilaan
persoonallisuus ja kypsyys tehtävään että esitelmän sisältö, on
oikeus antaa lupa esitelmän pitämiseen. Kiireellisessä tapauksessa
voi rehtori pyynnöstä antaa sellaisen luvan ilman edelläkäypää
tutkintoa asianomaisessa osakunnassa."

Ehdotuksella, että osakunnat ottaisivat osaa tarkastukseen, ei


tarkoitettu niin paljon sitä käytännöllistä etua, jonka se saattoi
tuottaa, kuin pikemminkin sellaisen tunnustuksen ilmituomista, että
kansanvalistustyö ei ollut vieras osakuntain tehtäville, ja erityisesti
seurasi siitä, että osakuntain kansanvalistustoimikunnat siten saivat
eräänlaisen vahvistuksensa korkeimmalta taholta.

Kirjelmä lähti toukokuun 5 päivänä, ja kymmenen päivää


myöhemmin saapui kanslerin lopullinen ratkaisu. Kirje sijaiskanslerille
oli kirjoitettu hyvin hienotunteiseen äänilajiin, ja sanoo kansleri, että
hän "näkee mahdolliseksi asiallisesti yhtyä v.t. sijaiskanslerin
ehdotukseen kysymyksestä". Hän kirjoittaa:

"Sentähden pidän tarpeellisena, että ylioppilas, joka haluaa pitää


sellaisia esitelmiä, ilmoittaa siitä osakuntansa inspehtorille tai
kuraattorille, antaen tiedon ajasta, paikasta ja esitelmän sisällöstä.
Tämän ilmoituksen tarkastaa osakunnan valitsema valiokunta, joka
toimii inspehtorin tai kuraattorin puheenjohdolla, ja joka toimittaa
valiokunnan mietinnön yliopiston rehtorin harkittavaksi ja lopullisesti
päätettäväksi. Saatua lupaa käyttäessään on ylioppilaan
mukauduttava voimassa oleviin asetuksiin ja viranomaisten
vaatimuksiin.

"Samaten pidän tarpeellisena suositella yliopiston rehtorille


toimintaohjeeksi, että sellaisten esitelmien järjestäminen
myönnettäisiin ylioppilaille, jotka ovat olleet yliopiston kirjoissa
vähintään viisi lukukautta, sekä että esitelmäin aineista jätettäisiin
pois kysymykset, joissa olisi valtio-oikeudellinen sisältö tämän sanan
rajoitetussa merkityksessä. Poikkeuksia tästä säännöstä pitäisi
myöntää vain muutamissa erikoistapauksissa, joista, kuten yleensä
luvista, joita rehtori myöntää, odotan aikanansa v.t. sijaiskanslerin
minulle ilmoittavan.

"Vihdoin katson velvollisuudekseni ilmoittaa Todell.


Valtioneuvoksen tietoon, että minulla ei ole epäilyksiä siitä, että
suomalaista yliopistonuorisoa, sen käyttäessä opinnoista vapaata
aikaansa julkisten esitelmien järjestämiseen, eivät johda mitkään
Hallituksen tarkoitusten vastaiset vaikuttimet, vaan yksinomaan sen
pyrkimys edistää alempien luokkien tietopuolista kehitystä. Se
edullinen vaikutelma, jonka viimeisellä käynnilläni yliopistossa ja
ylioppilastalolla sain, tekee minut vakuutetuksi siitä, että nuoriso
osoittautuu luottamuksen ansainneeksi, joka sen osaksi tulee, kun
sen sallitaan työskennellä sivistyksen levittämiseksi kansan
keskuudessa."

Kun vapaaherra Indrenius ja professori Berendts promotsionin


aikaan samana keväänä kävivät Helsingissä, ilmoittivat he minulle,
että Plehwe oli antanut heille tehtäväksi, sijaiskanslerin ehdotuksen
ja Plehwen lähempien määräysten johdolla, laatia lopullisen
ehdotuksen asiaa koskeviksi lähemmiksi määräyksiksi. Kun tämä
ehdotus, joka sisälsi eri kohdittain kokoonpannun säännön, esitettiin
v.t. kanslerille, lausui hän: "Sellaisia järjestysmääräyksiä saattaa
tosin ripustaa poliisikamarin seinälle, mutta Helsingin yliopistoon
niitä ei voi lähettää. Voi vain antaa rehtorille yleisiä ohjeita, mihin
suuntaan valvonta ja kontrolli on käypä." Mainittujen herrojen
käsityksen mukaan oli näiden määräysten tarkoituksena vain suojella
ylioppilaita siviiliviranomaisten sekaantumiselta heidän
kansanvalistustyöhönsä. Itse tulin myöskin monien seikkojen
johdosta siihen vakaumukseen, että Plehwe ennakolta arvasi
hankausta syntyvän yliopiston ja kenraalikuvernöörin välillä, jos
valvonta jätettäisiin siviiliviranomaisten käsiin. Senvuoksi kiirehti hän
kontrollin toimeenpanoa yliopistoviranomaisten kautta, ennenkuin
asetus kokouksista saman vuoden kesäkuussa tuli julkisuuteen. Että
se tehtävä, joka valvonnan mukana tuli rehtorin osaksi, tälle tuottaisi
monta vaikeutta, ymmärsin minä kyllä, mutta tahdoin kuitenkin
päästä niiden läpi. Ylioppilasten kansanvalistustyö sai itse teossa
jatkua jotenkin häiritsemättä kahden ja puolen vuoden ajan
eteenpäin.

Kanslerin määräys ilmoitettiin kaikille osakunnille ja herätti


luonnollisesti jonkunlaista tyytymättömyyttä, joka sentään ei
ilmautunut muulla tavalla kuin että muutamat osakunnat
kieltäytyivät kaikesta suoranaisesta osanotosta valvontaan, mistä
seikasta kuitenkaan ei sen enempää huolittu. Suuri joukko esitelmiä
ilmoitettiin kuitenkin pidettäväksi, jonka osaksi tekivät itse
esitelmöitsijät, osaksi kuraattorit, erikoisesti niissä tapauksissa,
jolloin esitelmät olivat järjestäneet osakuntien
kansanvalistustoimikunnat. Heinäkuun 1 päivänä 1900 kehoitti minua
kanslerinsihteeri viipymättä lähettämään tietoja annetuista luvista,
mikä tapahtuikin, ja senjälkeen minä annoin sellaisia tietoja
kanslerinvirastoon sitä mukaa kuin niitä annettiin. Sillävälin oli
kesäkuussa uusi asetus kokouksista julkaistu, ja se antoi tällä alalla
poliisiviranomaisille entistä huomattavasti suurempia valtuuksia.
Tästä ajasta alkaen ei opiskelevissa mitään tyytymättömyyttä
rehtorin valvontaan enää ollut huomattavissa ja mitään tahallisia
yrityksiä välttää valvontaa tahi olla piittaamatta siitä ei minun
tietääkseni tapahtunut. Mitään selkkauksia kenraalikuvernöörin
kanssa ylioppilas-esitelmistä ei syksyn kuluessa sattunut.

Mutta kenraalikuvernööri ei ollut tyytyväinen tähän asiain tilaan.


Kirjeessä joulukuun 8 päivältä 1900 kanslerille ehdotti
kenraalikuvernööri, että rehtori hyvissä ajoin toimittaisi hänelle
niiden esitelmien ohjelmia, joiden pitämiseen lupa oli annettu, jotta
hän saattaisi "arvostella esitelmien todellisen alan ja sisällön".
Hänelle oli, huomauttaa hän, ollut vaikeata hänelle (kanslerinviraston
kautta) toimitettujen luettelojen nojalla, jotka sisälsivät vain
esitelmien nimet, "tehdä oikeita johtopäätöksiä siitä, missä määrin
ne olivat sopivia, samoin kuin arvioida niiden luonnetta ja alaa".
Tämän johdosta v.t. kansleri joulukuun 13 päivänä lähetti
sijaiskanslerille kirjeen, jossa tätä kehoitettiin antamaan rehtorille
tehtäväksi, samalla kertaa kuin hän lähetti kanslerinvirastoon
luettelon esitelmistä, "jonka mukana täytyy olla myöskin selostusta
niiden sisällöstä", toimittaa jäljennös luettelosta
kenraalikuvernöörille. Tiedot piti lähetettämän tälle niin hyvissä
ajoin, "että hänellä on tilaisuus ryhtyä tarpeellisiin toimenpiteisiin
niihin esitelmiin nähden, joiden pitämistä ei katsota suotavaksi".

Seuraamalla tätä määräystä rehtori olisi joutunut välittömiin


tekemisiin kenraalikuvernöörin kanssa tässä mainitussa asiassa ja
tämä olisi nähtävästi pian alkanut antaa hänelle suoranaisia
määräyksiä ja tehnyt hänet itsestänsä riippuvaiseksi. Sellaiseen
järjestykseen minä en katsonut saattavani suostua, vaan huomautin,
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookmass.com

You might also like