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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Fabian Gosebrink
October 22, 2017
Technology
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cross Platform WebAPIs with ASP.NET Core
Slides for my talk about Cross Platform WebAPIs with ASP.NET Core
Fabian Gosebrink
October 22, 2017
More Decks by Fabian Gosebrink
See All by Fabian Gosebrink
Advanced Signal Store: Structuring State for Real Angular Applications
fabiangosebrink
0
96
NgRx Signal Store - A Deeper Dive
fabiangosebrink
0
66
Modern Angular Apps in 2026
fabiangosebrink
0
120
Why State is the Most Important Part of Your Angular Application
fabiangosebrink
0
150
Angular testing made easy with Jest and Cypress
fabiangosebrink
0
180
Introducing state management into an application with NgRx
fabiangosebrink
0
270
Scalable architectures in Angular with Nx
fabiangosebrink
0
240
My Biggest Angular Mistakes and How To Avoid Them
fabiangosebrink
0
350
[iJS Munich] Better Angular Architectures with Libraries and Nx
fabiangosebrink
0
230
Other Decks in Technology
See All in Technology
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
120
猫付きpingコマンドを自作
uyuki234
0
240
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
800
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.3k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
140
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
600
Genie Codeハンズオン基礎編
taka_aki
1
120
JavaScript 研修 (2026)
recruitengineers
PRO
2
560
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
790
Goでデータパイプラインを作ろう
sansantech
PRO
1
460
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
120
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
KATA
mclloyd
PRO
35
15k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
270
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Designing for Performance
lara
611
70k
The agentic SEO stack - context over prompts
schlessera
0
860
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
Designing for Timeless Needs
cassininazir
1
440
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