Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cross Platform WebAPIs with ASP.NET Core
Search
Fabian Gosebrink
October 22, 2017
Technology
0
83
Cross Platform WebAPIs with ASP.NET Core
Slides for my talk about Cross Platform WebAPIs with ASP.NET Core
Fabian Gosebrink
October 22, 2017
Tweet
Share
More Decks by Fabian Gosebrink
See All by Fabian Gosebrink
Modern Angular Apps in 2026
fabiangosebrink
0
22
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
82
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
130
Introducing state management into an application with NgRx
fabiangosebrink
0
200
Scalable architectures in Angular with Nx
fabiangosebrink
0
160
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
270
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
160
Mastering State Management in Angular with the NgRx Signal Store
fabiangosebrink
0
410
Angular Architectures with NgRx Stores & Effects
fabiangosebrink
0
120
Other Decks in Technology
See All in Technology
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
0
180
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
320
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
100
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Greatest Disaster Hits in Web Performance
guaca
0
280
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
600
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
310
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
71
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
The untapped power of vector embeddings
frankvandijk
1
1.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
Statistics for Hackers
jakevdp
799
230k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
54
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
98
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The Pragmatic Product Professional
lauravandoore
37
7.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Transcript
None
with Cross Platform WebAPIs ASP.NET Core
None
None
@FabianGosebrink
None
What is ASP.NET Core?
MVC + WebAPI + Web Pages ASP.NET Core
None
Faster Deployment Cycles
None
Tooling
DOTNET CLI fabian gosebrink
class Program { static void Main(string[] args) { Console.WriteLine("Hello World!");
} }
DOTNET CLI fabian gosebrink
public class Program { public static void Main(string[] args) {
BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }
Program.cs 1. public class Program 2. { 3. public static
void Main(string[] args) 4. { 5. BuildWebHost(args).Run(); 6. } 7. 8. public static IWebHost BuildWebHost(string[] args) => 9. WebHost.CreateDefaultBuilder(args) 10. .UseStartup<Startup>() 11. .Build(); 12. }
public class Program { public static void Main(string[] args) {
var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); } }
Dependency Injection
Startup.cs 1. public class Startup 2. { 3. public Startup(IConfiguration
configuration) 4. { 5. Configuration = configuration; 6. } 7. 8. public IConfiguration Configuration { get; set; } 9. 10. public void ConfigureServices(IServiceCollection services) 11. { 12. services.AddOptions(); 13. services.AddCors(...); 14. 15. services.AddSingleton<IFoodRepository, FoodRepository>();
Kestrel
None
REST
What is Rest?
Rest is not WebAPI
Rest is not HTTP
None
Architectural Style
Rest Constraints
Richardson Maturity Model
None
STATUSCODES
2XX
4XX
5XX
GET /api/orders/ GET /api/orders/1 POST /api/orders/ PUT /api/orders/1
The Controller 1. [Route("api/[controller]")] 2. public class FoodController : Controller
3. { 4. private readonly IFoodRepository _foodRepository; 5. 6. public FoodController(IFoodRepository foodRepository) 7. { 8. _foodRepository = foodRepository; 9. } 10. 11. [HttpGet] 12. public IActionResult Get() 13. { 14. ICollection<FoodItem> foodItems = _foodRepository.GetAll(); 15. IEnumerable<FoodItemDto> dtos = foodItems
Documentation SWAGGER
None
VERSIONING
document.docx
document- nal.docx
document- nal- nal.docx
document-really- nal.docx
document-really- nal-end-of- discussion.docx
document-really- nal-approved-by- customer.docx
document-really- nal-approved-by- customer-with- alterations- suggested-by-his- assistant.docx
document-really- nal- approved-by-customer- with-alterations- suggested-by-his- assistant-and-his-wife- cause-apparently-she- thinks-she-knows-all- about-good-api-design
document-really- nal- approved-by-customer- with-alterations- suggested-by-his- assistant-and-his-wife- cause-apparently-she- thinks-she-knows-all-
None
API-VERSION: 2.0 /API/V2/HOUSES
DEMO
/api/houses?page=4&pageSize=10
/api/houses?orderby=Id
/api/houses?fields=street,number
SignalR
None
None
None
Le Fin
@FabianGosebrink https://swissangular.com https://github.com/FabianGosebrink https://github.com/FabianGosebrink/AS WebAPI-Sample
Resources https://www.thefamouspeople.com/pro les/images/og-donald_trump_ ag.jpg https://timedotcom. les.wordpress.com/2017/07/gettyimages-810247620.jpg?w=720&quality=85 https://media.giphy.com/media/xUPOqFfyBzvODVNTNu/giphy.gif https://cdn.vox- cdn.com/thumbor/5BOvGGpVyW4hSPLTAEYvHng6JlQ=/0x0:2931x1649/1200x800/ lters:focal(1239x265:1707x733)/c
cdn.com/uploads/chorus_image/image/55610995/GettyImages_810247620.0.jpg https://media.giphy.com/media/1BXa2alBjrCXC/giphy.gif http://img0.joyreactor.com/pics/post/photo-india-it-programmer-548432.jpeg