Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork148
🥇 Professional REST API design with ASP.NET Core WebAPI
dotnetzoom/AspNetCore-WebApi-Course
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 myCourse.
- Clone or download this repository
- Build the solution using command line with
dotnet build
- Go toMyApi directory and run project using command line with
dotnet run
- Browse to this urlhttps://localhost:5001/swagger to see SwaggerUI page
- JWT Authentication
- Secure JWT using Encryption (JWE)
- Logging to File, Console and Database usingElmah &NLog
- Logging tosentry.io (Log Management System)
- Exception Handling using Custom Middleware
- Automatic Validation
- Standard API Resulting
- Dependency Injection usingAutofac (Ioc Container)
- Map resources usingAutoMapper
- Async/Await Best Practices
- Versioning Management
- UsingSwagger (Swashbuckle)
- Auto Document Generator for Swagger
- Integrate Swagger and Versioning
- Integrate Swagger and JWT/OAuth Authentication
- Best Practices for Performance and Security
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 بررسی شده اند.
در این دوره سعی شده بهترین و محبوب ترین تکنولوژی ها، کتابخانه ها و ابزار ها داخل پروژه استفاده بشه. همچنین Best Practice های پرفرمنسی و امنیتی بعلاوه تکنیک های پرکاربرد را بررسی و در قالب یک معماری حرفه ای و اصولی استفاده می کنیم.
توجه:
- برنچ master این مخزن همواره به آخرین نسخه ASP.NET Core (به همراه تمام Dependency هایش) بروز رسانی شده و خواهد شد (در حال حاضر ASP.NET Core 6.0 می باشد)
- جهت دسترسی به کد اولیه پروژه که با ASP.NET Core 2.1 در هنگام تهیه دوره نوشته بودبه این برنچ مراجعه کنید
- جهت دسترسی به کد پروژه در ورژن ASP.NET Core 3.1به این برنچ مراجعه کنید
- جهت دسترسی به کد پروژه در ورژن ASP.NET Core 5.0به این برنچ مراجعه کنید
- همچنین جهت اطلاعات بیشتر از تغییرات که به هنگام 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 هستش.
انتظار میره برای شروع این دوره پیش نیاز های زیر رو داشته باشین :
- تسلط نسبی بر روی زبان سی شارپ
- آشنایی با پروتکل Http و REST
- آشنایی با Entity Framework (ترجیحا EF Core)
- آشنایی با ASP.NET MVC یا ASP.NET Core (و ترجیحا آشنایی با WebAPI)
جهت ارتباط با مدرس و ارائه هرگونه پیشنهاد، انتقاد، نظر و سوالاتتون میتونین با اکانت تلگراممحمد جواد ابراهیمی در ارتباط باشینmjebrahimi@
⭐️در پایان اگه واقعا از دورهخوشتون اومده بود حتما بهشStar بدین. با اینکار حمایت خودتون رو از ما اعلام میکنین🙏 و این به ما انگیزه میده آموزش های بیشتری تهیه کنیم✌
About
🥇 Professional REST API design with ASP.NET Core WebAPI
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors6
Uh oh!
There was an error while loading.Please reload this page.