All Projects → dotnetzoom → Aspnetcore Webapi Course

dotnetzoom / Aspnetcore Webapi Course

Professional REST API design with ASP.NET Core 3.1 WebAPI

Projects that are alternatives of or similar to Aspnetcore Webapi Course

Aspnetcore Ddd
Full ASP.NET Core 3.1 LTS application with DDD, CQRS and Event Sourcing
Stars: ✭ 88 (-72.76%)
Mutual labels:  swagger, webapi, automapper, jwt, identity
Go Book Store Api
Go Sample project to understand Mysql CRUD operation with best practises Includes logging, JWT, Swagger and Transactions
Stars: ✭ 18 (-94.43%)
Mutual labels:  swagger, swagger-ui, jwt, jwt-authentication
Netcoreblockly
.NET Core API to Blockly - generate from WebAPI, Swagger, OData, GraphQL =>
Stars: ✭ 121 (-62.54%)
Mutual labels:  swagger, webapi, jwt, jwt-authentication
Equinoxproject
Full ASP.NET Core 5 application with DDD, CQRS and Event Sourcing concepts
Stars: ✭ 5,120 (+1485.14%)
Mutual labels:  swagger, automapper, aspnet-core, jwt
Aspnetcoreapistarter
An ASP.NET Core (v2.1) Web API project to quickly bootstrap new projects. Includes Identity, JWT authentication w/ refresh tokens.
Stars: ✭ 304 (-5.88%)
Mutual labels:  webapi, jwt, identity, jwt-authentication
Admin.core
Admin后端,前后端分离的权限管理系统,集成统一认证授权,支持国内外主流数据库自由切换和动态高级查询,基于.Net开发的WebApi
Stars: ✭ 358 (+10.84%)
Mutual labels:  swagger, automapper, nlog
Abp Asp.net Boilerplate Project Cms
ABP module-zero +AdminLTE+Bootstrap Table+jQuery+Redis + sql server+quartz+hangfire权限管理系统
Stars: ✭ 677 (+109.6%)
Mutual labels:  swagger, webapi, automapper
Kodkod
https://github.com/alirizaadiyahsi/Nucleus Web API layered architecture startup template with ASP.NET Core 2.1, EF Core 2.1 and Vue Client
Stars: ✭ 45 (-86.07%)
Mutual labels:  swagger, jwt-authentication, automapper
Security.identity
.NET DevPack Identity is a set of common implementations to help you implementing Identity, Jwt, claims validation and another facilities
Stars: ✭ 165 (-48.92%)
Mutual labels:  jwt, oauth, identity
Simplemall
基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例,融合spring cloud 相关组件,如spring-cloud-netflix、swagger等
Stars: ✭ 687 (+112.69%)
Mutual labels:  swagger, jwt, jwt-authentication
Api server boilerplate
typescript express board boilerplate using routing controller
Stars: ✭ 52 (-83.9%)
Mutual labels:  swagger, sentry, oauth
Meiam.system
.NET 5 / .NET Core 3.1 WebAPI + Vue 2.0 + RBAC 企业级前后端分离权限框架
Stars: ✭ 340 (+5.26%)
Mutual labels:  swagger, webapi, nlog
Aspnetcorenlog
ASP.NET Core NLog MS SQL Server PostgreSQL MySQL Elasticsearch
Stars: ✭ 54 (-83.28%)
Mutual labels:  aspnet-core, logging, nlog
Authing
🔥Authing - IDaaS/IAM solution that can Auth to web and mobile applications.
Stars: ✭ 247 (-23.53%)
Mutual labels:  jwt, oauth, identity
Jimu
.netcore micro service framework
Stars: ✭ 315 (-2.48%)
Mutual labels:  swagger, nlog, jwt
Spring Boot Plus
🔥 Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. 🚀
Stars: ✭ 2,198 (+580.5%)
Mutual labels:  swagger, swagger-ui, jwt
Blog.core
💖 ASP.NET Core 6.0 全家桶教程,前后端分离后端接口,vue教程姊妹篇,官方文档:
Stars: ✭ 3,542 (+996.59%)
Mutual labels:  swagger, automapper, jwt
Oauthlib
A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
Stars: ✭ 2,323 (+619.2%)
Mutual labels:  oauth, identity, jwt-authentication
MinimalApi
ASP.NET Core 7.0 - Minimal API Example - Todo API implementation using ASP.NET Core Minimal API, Entity Framework Core, Token authentication, Versioning, Unit Testing, Integration Testing and Open API.
Stars: ✭ 156 (-51.7%)
Mutual labels:  aspnet-core, jwt-authentication, webapi
CleanArchitecture-Template
This is a solution template for Clean Architecture and CQRS implementation with ASP.NET Core.
Stars: ✭ 60 (-81.42%)
Mutual labels:  identity, swagger-ui, jwt-authentication

🥇Professional REST API design with ASP.NET Core WebAPI

This project is an example of lightweight and extensible infrastructure for building RESTful Web API with ASP.NET Core.

This example contains a number of tricks and techniques that is the result of many years of my experience in WebAPI/RESTful programming in ASP.NET Core

If you want a total deep dive on REST, API security, ASP.NET Core and much more, check out my Course.

Testing it out

  1. Clone or download this repository
  2. Build the solution using command line with dotnet build
  3. Go to MyApi directory and run project using command line with dotnet run
  4. Browse to this url https://localhost:5001/swagger to see SwaggerUI page

Techniques and Features

  • JWT Authentication
  • Secure JWT using Encryption (JWE)
  • Logging to File, Console and Database using Elmah & NLog
  • Logging to sentry.io (Log Management System)
  • Exception Handling using Custom Middleware
  • Automatic Validation
  • Standard API Resulting
  • Dependency Injection using Autofac (Ioc Container)
  • Map resources using AutoMapper
  • Async/Await Best Practices
  • Versioning Management
  • Using Swagger (Swashbuckle)
  • Auto Document Generator for Swagger
  • Integrate Swagger and Versioning
  • Integrate Swagger and JWT/OAuth Authentication
  • Best Practices for Performance and Security

Give a Star! ⭐️

If you like this project, learn something or you are using it in your applications, please give it a star. Thanks!


🥇پروژه دوره API نویسی اصولی و حرفه ای در ASP.NET Core

در این دوره همه نکات مهم و پرکاربرد در API نویسی اصولی و حرفه ای در ASP.NET Core بررسی شده اند.

در این دوره سعی شده بهترین و محبوب ترین تکنولوژی ها، کتابخانه ها و ابزار ها داخل پروژه استفاده بشه. همچنین Best Practice های پرفرمنسی و امنیتی بعلاوه تکنیک های پرکاربرد را بررسی و در قالب یک معماری حرفه ای و اصولی استفاده می کنیم.

توجه:

  • برنچ master این مخزن همواره به آخرین نسخه ASP.NET Core (به همراه تمام Dependency هایش) بروز رسانی شده و خواهد شد (در حال حاضر ASP.NET Core 5.0 می باشد)
  • جهت دسترسی به کد اولیه پروژه که با ASP.NET Core 2.1 در هنگام تهیه دوره نوشته بود به این برنچ مراجعه کنید
  • جهت دسترسی به کد پروژه در ورژن ASP.NET Core 3.1 به این برنچ مراجعه کنید
  • همچنین جهت اطلاعات بیشتر از تغییرات که به هنگام Upgrade پروژه از نسخه 2.1 به 3.1 انجام شد، میتونین به قسمت ChangeLog مراجعه کنید

تکنولوژی، ابزار ها و قابلیت ها

  • لایه بندی اصولی پروژه (Project Layering and Architecture) : در این دوره لایه بندی اصولی یک پروژه را از ابتدا شروع و هر بخش را بررسی می کنیم. همچنین مباحث Repository و UOW رو هم بررسی می کنیم.
  • احراز هویت (Authentication)
    • ASP.NET Core Identity : احراز هویت توسط Identity + سفارشی سازی
    • (Json Web Token) JWT : احراز هویت توسط Jwt + یکپارچه سازی آن با Identity
    • (Json Web Encryption) JWE : ایمن سازی توکن ها بوسیله رمزنگاری توکن (JWE)
    • Security Stamp : جلوگیری از اعتبارسنجی توکن به هنگام تغییر دسترسی های کاربر جهت امنیت بیشتر
    • Claims : کار با Claim ها و تولید خودکار آنها توسط ClaimsFactory
  • Logging (ثبت خطا ها)
    • Elmah : استفاده از Elmah برای لاگ خطا ها در Memory, XML File و Database
    • NLog : استفاده از NLog برای لاگ خطا ها در File و Console
    • Custom Middleware : نوشتن یک میدلویر سفارشی جهت لاگ تمامی خطا (Exception) ها
    • Custom Exception : نوشتن Exception برای مدیریت ساده تر خطا ها
    • Sentry : ثبت خطا ها در سیستم مدیریت لاگ sentry.io (مناسب برای پروژه های بزرگ)
  • تزریق وابستگی (Dependency Injection)
    • ASP.NET Core IOC Container : استفاده از Ioc container داخلی Asp Core
    • Autofac : استفاده از محبوب ترین کتابخانه Autofac (Ioc Container)
    • Auto Registeration : ثبت خودکار سرویس ها توسط یک تکنیک خلاقانه با کمک Autofac
  • ارتباط با دیتابیس (Data Access)
    • Entity Framework Core : استفاده از EF Core
    • Auto Entity Registration : ثبت Entity های DbContext به صورت خودکار توسط Reflection
    • Pluralizing Table Name : جمع بندی نام جداول EF Core به صورت خودکار توسط کتابخانه Pluralize.NET و Reflection
    • Automatic Configuration : اعمال کانفیگ های EntityTypeConfiguration (FluentApi) به صورت خودکار توسط Reflection
    • Sequential Guid : بهینه سازی مقدار دهی identity برای Guid به صورت خودکار توسط Reflection
    • Repository : توضیحاتی در مورد معماری اصولی Repository در EF Core
    • Data Intitializer : یک معماری اصولی برای Seed کردن مقادیر اولیه به Database
    • Auto Migrate : آپدیت Database به آخرین Migration به صورت خودکار
    • Clean String : اصلاح و یک دست سازی حروف "ی" و "ک" عربی به فارسی و encoding اعداد فارسی در DbContext به صورت خودکار به هنگام SaveChanges
  • Versioning : نسخه بندی و مدیریت نسخه های پروژه + سفارشی سازی و ایجاد یک معماری حرفه ای
  • ابزار (Swashbuckle) Swagger
    • Swagger UI : ساخت یک ظاهر شکیل به همراه داکیومنت Aciton ها و Controller های پروژه و امکان تست API ها توسط Swagger UI
    • Versioning : یکپارچه سازی اصولی Swagger با سیستم نسخه گذاری (Versioning)
    • JWT Authentication : یکپارچه سازی Swagger با سیستم احراز هویت بر اساس Jwt
    • OAuth Authentication : یکپارچه سازی Swagger با سیستم احراز هویت بر اساس OAuth
    • Auto Summary Document Generation : تولید خودکار داکیومنت (توضیحات) برای API های پروژه
    • Advanced Customization : سفارشی سازی های پیشرفته در Swagger
  • دیگر قابلیت ها
    • API Standard Resulting : استاندارد سازی و یک دست سازی خروجی API ها توسط ActionFilter
    • Automatic Model Validation : اعتبار سنجی خودکار
    • AutoMapper : جهت Mapping اشیاء توسط کتابخانه محبوب AutoMapper
    • Auto Mapping : سفارشی سازی وایجاد یک معماری حرفه ای برای Mapping اشیا توسط Reflection
    • Generic Controller : ساخت کنترلر برای عملیات CRUD بدون کد نویسی توسط ارث بری از CrudController
    • Site Setting : مدیریت تنظیمات پروژ توسط Configuration و ISnapshotOptions
    • Postman : آشنایی و کار با Postman جهت تست API ها
    • Minimal Mvc : حذف سرویس های اضافه MVC برای افزایش پرفرمنس در API نویسی
    • Best Practices : اعمال Best Practices ها جهت بهینه سازی، افزایش پرفرمنس و کدنویسی تمیز و اصولی
    • و چندین نکته مفید دیگر ...

مزیت اصلی این دوره؟

به جای اینکه ماه ها وقت صرف کنین تحقیق کنین، مطالعه کنین و موارد کاربردی و مهم API نویسی رو یاد بگیرین توی این دوره همشو یک جا و سریع یاد میگیرین و تو وقتتون صرفه جویی میشه. همچنین یک پله هم به Senior Developer شدن نزدیک میشین ;)

دانلود ویدئو های آموزشی دوره

این دوره در قالب (در مجموع) 22 ساعت آموزش ویدئویی توسط محمد جواد ابراهیمی (mjebrahimi) تدریس شده است.

لینک دانلود : خرید از سایت بیاموز (کد تخفیف 20 درصدی : DotNetZoom)

پیش نیاز این دوره :

سطح دوره پیشرفته بوده و برای افراد مبتدی مناسب نیست.

این دوره، آموزش ASP.NET Core نیست و زیاد روی مباحثش عمیق نمیشیم و فقط به مباحثی می پردازیم که مرتبط با API نویسی توی ASP.NET Core هستش.

انتظار میره برای شروع این دوره پیش نیاز های زیر رو داشته باشین :

  1. تسلط نسبی بر روی زبان سی شارپ
  2. آشنایی با پروتکل Http و REST
  3. آشنایی با Entity Framework (ترجیحا EF Core)
  4. آشنایی با ASP.NET MVC یا ASP.NET Core (و ترجیحا آشنایی با WebAPI)

ارتباط با مدرس

جهت ارتباط با مدرس و ارائه هرگونه پیشنهاد، انتقاد، نظر و سوالاتتون میتونین با اکانت تلگرام محمد جواد ابراهیمی در ارتباط باشین [email protected]

حمایت از ما

⭐️در پایان اگه واقعا از دوره خوشتون اومده بود حتما بهش Star بدین . با اینکار حمایت خودتون رو از ما اعلام میکنین🙏 و این به ما انگیزه میده آموزش های بیشتری تهیه کنیم✌

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].