آموزش با استفاده از Spring WebFlux/SpringBoot، MicroServices Reactive بسازید

Build Reactive MicroServices using Spring WebFlux/SpringBoot

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: یاد بگیرید که برنامه نویسی Reactive بنویسید و MicroServices Reactive بسازید با استفاده از Spring WebFlux و project Reactor برنامه نویسی راکتیو سعی در حل چه مشکلاتی دارد؟ برنامه نویسی واکنشی چیست؟ برنامه نویسی واکنشی با استفاده از Project Reactor آموزش نوشتن کد برنامه نویسی واکنش گرا با DB آموزش نوشتن برنامه نویسی واکنش گرا با Spring ساخت API واکنشی از ابتدا آموزش ساخت کلاینت های غیر مسدود کننده با استفاده از WebClient Write end to end موارد تست خودکار با استفاده از JUNIT برای Reactive API پیشها :حداقل JDK 8 هر یک از IDE ها مانند IntelliJ، Eclipse و غیره، برای استفاده حداکثری از این دوره، دانش Spring Boot ضروری است.

این دوره به گونه‌ای طراحی شده است که هم جنبه نظری و هم جنبه کدگذاری Reactive Programming و Reactive RestFul API با استفاده از Spring WebFlux را به شما ارائه دهد.

اگر مشتاقانه منتظر یادگیری موارد ذکر شده در زیر هستید:

  • برنامه نویسی واکنشی چیست؟

  • کد برنامه‌نویسی واکنش‌گرا را با Spring WebFlux بنویسید.

  • کد برنامه‌نویسی واکنش‌گرا را با DB بنویسید.

  • ساخت APIهای Reactive RestFul با Spring WebFlux

پس این دوره مناسب برای شماست. این یک دوره آموزشی کاملاً مبتنی بر دست است که در آن کدهای زیادی می نویسید.

در پایان این دوره، درک کاملی از کدنویسی و پیاده‌سازی API Reactive با استفاده از Spring WebFlux خواهید داشت.

چرا برنامه نویسی واکنشی؟

  • این بخش نیاز به برنامه نویسی واکنشی را برجسته می کند و به طور مفصل در مورد مدل اجرای فعلی در Spring-mvc توضیح می دهد.

  • این بخش در مورد ایرادات Spring-mvc توضیح می دهد.

  • این بخش در مورد مدل همزمانی در Spring-mvc توضیح می‌دهد.

برنامه نویسی واکنشی چیست؟

  • این بخش در مورد "برنامه نویسی واکنشی چیست؟" صحبت می کند.

  • چگونه برنامه نویسی واکنشی به طور خلاصه با استفاده از یک مثال ساده کار می کند.

  • این بخش به همه شما مقدمه ای با مشخصات جریان های واکنشی ارائه می دهد.

  • این بخش به همه "کتابخانه های واکنشی" که در آنجا وجود دارند، معرفی می کند.

شروع به کار با Project Reactor

  • این بخش تمام اصول Project Reactor را در اختیار شما قرار می دهد و راکتور پروژه را با استفاده از چند مثال بررسی می کند.

  • این بخش به تفصیل انواع واکنشی Flux و Mono را پوشش می دهد.

راه اندازی پروژه برای این دوره

  • در این بخش، پروژه این دوره را با استفاده از وب سایت Spring Intializr راه اندازی می کنیم.

برنامه‌نویسی واکنش‌گرا (Flux و Mono) - آزمایش‌های دستی + Junit

  • در این بخش به بررسی نحوه عملکرد Flux و Mono از طریق کد خواهیم پرداخت.

  • ما برنامه‌نویسی زنده در مورد نحوه نوشتن موارد تست Junit با استفاده از Flux و Mono انجام خواهیم داد.

  • ما بسیاری از اپراتورهای مختلف را در Flux و Mono بررسی خواهیم کرد.

اولین API غیر مسدود کننده RESTFUL را با استفاده از کنترلرهای حاشیه نویسی بسازید - Hands On

  • در این بخش، اولین API غیر مسدود کننده را با استفاده از کنترل‌کننده‌های حاشیه‌نویسی می‌سازیم.

  • این بخش اصول نحوه عملکرد API واکنشی را پوشش می‌دهد.

  • این بخش همچنین جنبه کدگذاری نحوه برگرداندن یک Flux/Mono از نقطه پایانی را پوشش می‌دهد.

  • این بخش همچنین نحوه نوشتن موارد تست JUNIT با استفاده از WebTestClient را پوشش می‌دهد.

ایجاد API غیر مسدود کننده RESTFUL با استفاده از وب کاربردی - Hands On

  • در این بخش، API غیر مسدود کننده را با استفاده از ماژول وب کاربردی می‌سازیم.

  • این بخش در مورد RouterFunction و HandlerFunction توضیح می دهد که اساس ماژول وب تابع را تشکیل می دهد.

  • این بخش همچنین نحوه نوشتن موارد تست JUNIT با استفاده از WebTestClient را پوشش می‌دهد.

Spring WebFlux Netty - Execution Model

  • این بخش در مورد لایه‌های مختلف پشت WebFlux برای ارائه درخواست/پاسخ HTTP توضیح می‌دهد.

  • این بخش مفاهیم NETTY مانند Channel، EventLoop و برخی از جنبه های فنی Netty را پوشش می دهد.

نمای کلی از API واکنشی

  • این بخش یک نمای کلی از Reactive API را به شما ارائه می دهد که به عنوان بخشی از این دوره آموزشی می خواهیم بسازیم.

برنامه نویسی واکنشی در پایگاه های داده - MongoDB - Hands On

  • در این بخش با نحوه نوشتن کد برنامه نویسی واکنشی با MongoDB آشنا خواهیم شد.

  • سند مورد را برای پروژه تعریف کنید.

  • این بخش نحوه پیکربندی نمایه‌های مختلف در Spring Boot را پوشش می‌دهد.

  • در این بخش ما آداپتور ItemReactive Mongo DB را راه اندازی می کنیم.

  • این بخش همچنین نحوه نوشتن موارد آزمایشی JUNIT را برای مخزن واکنشی پوشش می‌دهد.

نقطه پایانی API Reactive Item را بسازید - با استفاده از RestController

  • در این بخش با نحوه کدنویسی Item CRUD Reactive API با استفاده از رویکرد @RestController آشنا خواهیم شد.

  • این بخش همچنین نحوه نوشتن تست‌های خودکار با استفاده از JUNIT و سرویس گیرنده آزمایشی غیر مسدود WebTestClient را پوشش می‌دهد.

نقطه پایانی API Reactive Item را بسازید - با استفاده از وب عملکردی

  • در این بخش با نحوه کدنویسی Item CRUD Reactive API با استفاده از رویکرد وب عملکردی آشنا خواهیم شد.

  • این بخش همچنین نحوه نوشتن تست‌های خودکار با استفاده از JUNIT و سرویس گیرنده آزمایشی غیر مسدود WebTestClient را پوشش می‌دهد.

با استفاده از WebClient، کلاینت غیر مسدود کننده بسازید

  • در این بخش، تکنیک‌های تعامل با Reactive API با استفاده از WebClient را بررسی خواهیم کرد.

  • تکنیک های فراخوانی API Reactive را با استفاده از متدهای exchange() و retrieve() بیاموزید.

  • ما عملیات GET، PUT، POST و DELETE را با استفاده از WebClient بررسی خواهیم کرد.

مدیریت استثناها در WebFlux - RestController

  • در این بخش، روش‌های مختلف را کدنویسی و بررسی می‌کنیم تا استثناها/خطاهایی را که در api واکنشی ایجاد شده با استفاده از RestController رخ می‌دهند، بررسی کنیم.

  • استثناها را با استفاده از @ExceptionHandler و @ControllerAdvice مدیریت کنید.

  • این بخش همچنین نحوه نوشتن موارد آزمایشی JUNIT را برای سناریوهای استثنا پوشش می‌دهد.

مدیریت استثناها در WebFlux - وب عملکردی

  • در این بخش، روش‌های مختلف را کدنویسی و بررسی می‌کنیم تا استثناها/خطاهایی را که در api واکنشی ایجاد شده با استفاده از وب عملکردی ایجاد می‌شود، کنترل کنیم.

  • استثناها را با استفاده از WebExceptionHandler مدیریت کنید.

  • این بخش همچنین نحوه نوشتن موارد آزمایشی JUNIT را برای سناریوهای استثنا پوشش می‌دهد.

WebClient - Exception Handling

  • در این بخش، نحوه مدیریت استثناها را با استفاده از WebClient کدنویسی کرده و بررسی خواهیم کرد.

  • تکنیک های مدیریت استثنائات را با استفاده از متدهای exchange() و retrieve() بیاموزید.

پخش جریانی داده در زمان واقعی با استفاده از WebFlux - رویدادهای جانبی سرور (SSE)

  • در این بخش، کدنویسی می‌کنیم و درباره ایجاد یک نقطه پایانی برای پخش جریانی داده‌های RealTime با استفاده از Mongo DB و Spring WebFlux خواهیم آموخت.

  • این بخش در مورد مکان‌نماهای قابل دسترسی و مجموعه‌های درپوش در  Mongo DB را پوشش می‌دهد.

  • نقطه پایانی جریان غیر مسدودکننده بسازید و با استفاده از حاشیه نویسی @Tailable با Mongo DB تعامل داشته باشید.

  • نوشتن تست‌های خودکار با استفاده از JUNIT برای نقاط پایانی جریان (SSE) را بیاموزید.



سرفصل ها و درس ها

شروع دوره Getting Started with the Course

  • معرفی دوره Course Introduction

  • پیش نیازها Prerequisites

شروع دوره Getting Started with the Course

  • معرفی دوره Course Introduction

  • پیش نیازها Prerequisites

کد منبع و اسلایدهای دوره برای این دوره Source Code and Course Slides for this Course

  • کد منبع Source Code

  • اسلایدهای دوره Course Slides

کد منبع و اسلایدهای دوره برای این دوره Source Code and Course Slides for this Course

  • کد منبع Source Code

  • اسلایدهای دوره Course Slides

چرا برنامه نویسی واکنشی؟ Why Reactive Programming ?

  • چرا برنامه نویسی واکنشی - قسمت 1؟ Why Reactive Programming - Part 1?

  • چرا برنامه نویسی واکنشی - قسمت 2؟ Why Reactive Programming - Part 2?

چرا برنامه نویسی واکنشی؟ Why Reactive Programming ?

  • چرا برنامه نویسی واکنشی - قسمت 1؟ Why Reactive Programming - Part 1?

  • چرا برنامه نویسی واکنشی - قسمت 2؟ Why Reactive Programming - Part 2?

مقدمه ای بر برنامه نویسی واکنشی Introduction to Reactive Programming

  • برنامه نویسی واکنشی چیست؟ What is Reactive Programming ?

  • مقدمه ای بر جریان های واکنشی Introduction to Reactive Streams

مقدمه ای بر برنامه نویسی واکنشی Introduction to Reactive Programming

  • برنامه نویسی واکنشی چیست؟ What is Reactive Programming ?

  • مقدمه ای بر جریان های واکنشی Introduction to Reactive Streams

مقدمه ای بر Spring WebFlux Introduction to Spring WebFlux

  • مقدمه ای بر Spring WebFlux Introduction to Spring WebFlux

  • در این دوره قرار است چه چیزی بسازیم؟ What are we going to build in this Course ?

مقدمه ای بر Spring WebFlux Introduction to Spring WebFlux

  • مقدمه ای بر Spring WebFlux Introduction to Spring WebFlux

  • در این دوره قرار است چه چیزی بسازیم؟ What are we going to build in this Course ?

شروع کار با Project Reactor Getting Started with Project Reactor

  • مقدمه ای بر Project Reactor Introduction to Project Reactor

  • انواع راکتور راکتیو - شار و مونو Reactor Reactive Types - Flux and Mono

شروع کار با Project Reactor Getting Started with Project Reactor

  • مقدمه ای بر Project Reactor Introduction to Project Reactor

  • انواع راکتور راکتیو - شار و مونو Reactor Reactive Types - Flux and Mono

راه اندازی پروژه پایه برای این دوره Setting up the base project for this course

  • راه اندازی پروژه Project SetUp

راه اندازی پروژه پایه برای این دوره Setting up the base project for this course

  • راه اندازی پروژه Project SetUp

اجازه می دهد تا Flux و Mono - Hands On را کاوش کنیم Lets Explore Flux and Mono - Hands On

  • بیایید اولین Flux خود را بنویسیم Let's write our very first Flux

  • بیایید اولین مونو خود را بنویسیم Let's write our very first Mono

  • رویدادهای جریان واکنشی Reactive Stream Events

  • تست Flux با استفاده از JUnit5 Testing Flux using JUnit5

  • تبدیل داده ها با استفاده از اپراتورها در پروژه راکتور Transforming Data Using Operators in Project Reactor

  • با استفاده از عملگر map() تبدیل کنید Transform using map() Operator

  • جریان های واکنشی تغییر ناپذیر هستند Reactive Streams are Immutable

  • با استفاده از عملگر filter() فیلتر کنید Filter using filter() Operator

  • تبدیل پیشرفته با استفاده از عملگر flatMap(). Advanced transform using the flatMap() Operator

  • عملیات ناهمزمان با استفاده از عملگر flatMap(). Asynchronous Operations using flatMap() Operator

  • تبدیل پیشرفته با استفاده از عملگر ()concatMap Advanced transform using the concatMap() Operator

  • عملگر flatMap( ) در مونو flatMap( ) operator in Mono

  • عملگر flatMapMany( ) در مونو flatMapMany( ) operator in Mono

  • با استفاده از عملگر transform() تبدیل کنید Transform using the transform() Operator

  • مدیریت داده های خالی با استفاده از عملگرهای defaultIfEmpty و switchIfEmpty() Handling empty data using defaultIfEmpty and switchIfEmpty() Operators

  • مقدمه ای بر ترکیب جریان های واکنشی Introduction to Combining Reactive Streams

  • ترکیب جریان های واکنشی با استفاده از concat و concatWith Operator Combining Reactive Streams using concat and concatWith Operator

  • ترکیب جریان های واکنشی با استفاده از اپراتورهای merge() و mergeWith(). Combining Reactive Streams using merge() and mergeWith() Operators

  • ترکیب جریان های واکنشی با استفاده از عملگر mergeSequential(). Combining Reactive Streams using mergeSequential() operator

  • ترکیب جریان های واکنشی با استفاده از عملگر zip و zipWith(). Combining Reactive Streams using zip and zipWith() Operator

اجازه می دهد تا Flux و Mono - Hands On را کاوش کنیم Lets Explore Flux and Mono - Hands On

  • بیایید اولین Flux خود را بنویسیم Let's write our very first Flux

  • بیایید اولین مونو خود را بنویسیم Let's write our very first Mono

  • رویدادهای جریان واکنشی Reactive Stream Events

  • تست Flux با استفاده از JUnit5 Testing Flux using JUnit5

  • تبدیل داده ها با استفاده از اپراتورها در پروژه راکتور Transforming Data Using Operators in Project Reactor

  • با استفاده از عملگر map() تبدیل کنید Transform using map() Operator

  • جریان های واکنشی تغییر ناپذیر هستند Reactive Streams are Immutable

  • با استفاده از عملگر filter() فیلتر کنید Filter using filter() Operator

  • تبدیل پیشرفته با استفاده از عملگر flatMap(). Advanced transform using the flatMap() Operator

  • عملیات ناهمزمان با استفاده از عملگر flatMap(). Asynchronous Operations using flatMap() Operator

  • تبدیل پیشرفته با استفاده از عملگر ()concatMap Advanced transform using the concatMap() Operator

  • عملگر flatMap( ) در مونو flatMap( ) operator in Mono

  • عملگر flatMapMany( ) در مونو flatMapMany( ) operator in Mono

  • با استفاده از عملگر transform() تبدیل کنید Transform using the transform() Operator

  • مدیریت داده های خالی با استفاده از عملگرهای defaultIfEmpty و switchIfEmpty() Handling empty data using defaultIfEmpty and switchIfEmpty() Operators

  • مقدمه ای بر ترکیب جریان های واکنشی Introduction to Combining Reactive Streams

  • ترکیب جریان های واکنشی با استفاده از concat و concatWith Operator Combining Reactive Streams using concat and concatWith Operator

  • ترکیب جریان های واکنشی با استفاده از اپراتورهای merge() و mergeWith(). Combining Reactive Streams using merge() and mergeWith() Operators

  • ترکیب جریان های واکنشی با استفاده از عملگر mergeSequential(). Combining Reactive Streams using mergeSequential() operator

  • ترکیب جریان های واکنشی با استفاده از عملگر zip و zipWith(). Combining Reactive Streams using zip and zipWith() Operator

سرویس MoviesInfoService را راه اندازی کنید Set up the MoviesInfoService Service

  • راه اندازی پروژه Project SetUp

سرویس MoviesInfoService را راه اندازی کنید Set up the MoviesInfoService Service

  • راه اندازی پروژه Project SetUp

API ساده غیر مسدود کننده RESTFUL با استفاده از رویکرد کنترل کننده مشروح Simple Non Blocking RESTFUL API using Annotated Controller Approach

  • یک API ساده غیر مسدود کننده - Flux بسازید Build a Simple Non Blocking API - Flux

  • یک API ساده غیر مسدود کننده - مونو بسازید Build a simple Non Blocking API - Mono

  • ساخت Infinite Streams API (SSE) Build Infinite Streams API (SSE)

API ساده غیر مسدود کننده RESTFUL با استفاده از رویکرد کنترل کننده مشروح Simple Non Blocking RESTFUL API using Annotated Controller Approach

  • یک API ساده غیر مسدود کننده - Flux بسازید Build a Simple Non Blocking API - Flux

  • یک API ساده غیر مسدود کننده - مونو بسازید Build a simple Non Blocking API - Mono

  • ساخت Infinite Streams API (SSE) Build Infinite Streams API (SSE)

تست های خودکار با استفاده از JUnit5 و @WebFluxTest Automated Tests using JUnit5 and @WebFluxTest

  • مقدمه ای بر تست های خودکار Introduction to Automated Tests

  • تست نقطه پایانی Spring Webflux با استفاده از حاشیه‌نویسی تست @WebFlux Testing Spring Webflux Endpoint using@WebFlux Test Annotation

  • رویکردهای مختلف تست نقطه پایانی Different Approaches of Testing an Endpoint

  • تست JUnit برای نقطه پایانی مونو JUnit Test for the Mono Endpoint

  • JUnit Test Streaming Endpoint - SSE JUnit Test Streaming Endpoint - SSE

تست های خودکار با استفاده از JUnit5 و @WebFluxTest Automated Tests using JUnit5 and @WebFluxTest

  • مقدمه ای بر تست های خودکار Introduction to Automated Tests

  • تست نقطه پایانی Spring Webflux با استفاده از حاشیه‌نویسی تست @WebFlux Testing Spring Webflux Endpoint using@WebFlux Test Annotation

  • رویکردهای مختلف تست نقطه پایانی Different Approaches of Testing an Endpoint

  • تست JUnit برای نقطه پایانی مونو JUnit Test for the Mono Endpoint

  • JUnit Test Streaming Endpoint - SSE JUnit Test Streaming Endpoint - SSE

برنامه نویسی واکنشی در Mongo DB برای سرویس MovieInfo Reactive Programming in Mongo DB for the MovieInfo Service

  • سند MovieInfo را تنظیم کنید Set up the MovieInfo Document

  • مخزن ReactiveMongoDB را برای سند MovieInfo پیکربندی کنید Configure the ReactiveMongoDB Repository for MovieInfo Document

  • جزئیات سرور Mongo DB را در فایل application.yml پیکربندی کنید Configure the Mongo DB server details in the application.yml file

  • تست ادغام را با استفاده از @DataMongoTest راه اندازی کنید Setup the Integration Test using @DataMongoTest

  • نوشتن تست یکپارچه سازی برای findAll() MovieInfo Document Write Integration Test for findAll() MovieInfo Document

  • تست ادغام را برای سند MovieInfo findById() بنویسید Write Integration Test for findById() MovieInfo Document

  • برای ذخیره سند MovieInfo، تست یکپارچه سازی را بنویسید Write Integration Test for saving the MovieInfo Document

  • تست یکپارچه سازی را برای به روز رسانی سند MovieInfo بنویسید Write Integration Test for updating the MovieInfo Document

  • تست یکپارچه سازی برای حذف سند MovieInfo را بنویسید Write Integration Test for deleting the MovieInfo Document

برنامه نویسی واکنشی در Mongo DB برای سرویس MovieInfo Reactive Programming in Mongo DB for the MovieInfo Service

  • سند MovieInfo را تنظیم کنید Set up the MovieInfo Document

  • مخزن ReactiveMongoDB را برای سند MovieInfo پیکربندی کنید Configure the ReactiveMongoDB Repository for MovieInfo Document

  • جزئیات سرور Mongo DB را در فایل application.yml پیکربندی کنید Configure the Mongo DB server details in the application.yml file

  • تست ادغام را با استفاده از @DataMongoTest راه اندازی کنید Setup the Integration Test using @DataMongoTest

  • نوشتن تست یکپارچه سازی برای findAll() MovieInfo Document Write Integration Test for findAll() MovieInfo Document

  • تست ادغام را برای سند MovieInfo findById() بنویسید Write Integration Test for findById() MovieInfo Document

  • برای ذخیره سند MovieInfo، تست یکپارچه سازی را بنویسید Write Integration Test for saving the MovieInfo Document

  • تست یکپارچه سازی را برای به روز رسانی سند MovieInfo بنویسید Write Integration Test for updating the MovieInfo Document

  • تست یکپارچه سازی برای حذف سند MovieInfo را بنویسید Write Integration Test for deleting the MovieInfo Document

سرویس MovieInfo را با استفاده از روش Rest Controller بسازید Build MovieInfo Service using Rest Controller Approach

  • یک نقطه پایانی POST برای ایجاد MovieInfo جدید بسازید Build a POST endpoint to create a new MovieInfo

  • تست یکپارچه سازی برای نقطه پایانی POST با استفاده از JUnit5 Integration Test for the POST end point using JUnit5

  • برای دریافت همه MoviesInfo، یک GET Endpoint بسازید Build a GET Endpoint to get all the MoviesInfo

  • برای بازیابی MovieInfo با شناسه، یک GET Endpoint بسازید Build a GET Endpoint to retrieve a MovieInfo by ID

  • یک نقطه پایانی PUT برای به روز رسانی MovieInfo با شناسه بسازید Build a PUT Endpoint to update a MovieInfo by ID

  • برای حذف MovieInfo با شناسه، نقطه پایانی DELETE را بسازید Build the DELETE endpoint to delete a MovieInfo by ID

  • یک تست یکپارچه سازی برای حذف نقطه پایانی بنویسید Write an Integration Test for Delete Endpoint

سرویس MovieInfo را با استفاده از روش Rest Controller بسازید Build MovieInfo Service using Rest Controller Approach

  • یک نقطه پایانی POST برای ایجاد MovieInfo جدید بسازید Build a POST endpoint to create a new MovieInfo

  • تست یکپارچه سازی برای نقطه پایانی POST با استفاده از JUnit5 Integration Test for the POST end point using JUnit5

  • برای دریافت همه MoviesInfo، یک GET Endpoint بسازید Build a GET Endpoint to get all the MoviesInfo

  • برای بازیابی MovieInfo با شناسه، یک GET Endpoint بسازید Build a GET Endpoint to retrieve a MovieInfo by ID

  • یک نقطه پایانی PUT برای به روز رسانی MovieInfo با شناسه بسازید Build a PUT Endpoint to update a MovieInfo by ID

  • برای حذف MovieInfo با شناسه، نقطه پایانی DELETE را بسازید Build the DELETE endpoint to delete a MovieInfo by ID

  • یک تست یکپارچه سازی برای حذف نقطه پایانی بنویسید Write an Integration Test for Delete Endpoint

تست واحد در Spring WebFlux Unit Testing in Spring WebFlux

  • راه اندازی UnitTest در WebFlux Setting up the UnitTest in WebFlux

  • تست واحد برای نقطه پایانی GetAllMovieInfos - GET Unit Test for GetAllMovieInfos endpoint - GET

  • تست واحد برای getMovieInfoById Unit Test for getMovieInfoById

  • تست واحد برای ایجاد MovieInfo Endpoint - POST Unit Test for the create MovieInfo Endpoint - POST

  • تست واحد برای به‌روزرسانی MovieInfo Endpoint - PUT Unit Test for the update MovieInfo Endpoint - PUT

  • تکلیف: تست واحد برای حذف اطلاعات فیلم Assignment : Unit Test for Delete Movie Info

تست واحد در Spring WebFlux Unit Testing in Spring WebFlux

  • راه اندازی UnitTest در WebFlux Setting up the UnitTest in WebFlux

  • تست واحد برای نقطه پایانی GetAllMovieInfos - GET Unit Test for GetAllMovieInfos endpoint - GET

  • تست واحد برای getMovieInfoById Unit Test for getMovieInfoById

  • تست واحد برای ایجاد MovieInfo Endpoint - POST Unit Test for the create MovieInfo Endpoint - POST

  • تست واحد برای به‌روزرسانی MovieInfo Endpoint - PUT Unit Test for the update MovieInfo Endpoint - PUT

  • تکلیف: تست واحد برای حذف اطلاعات فیلم Assignment : Unit Test for Delete Movie Info

اعتبارسنجی Bean با استفاده از Validators و ControllerAdvice Bean Validation using Validators and ControllerAdvice

  • اعتبار سنجی Bean برای نام، سال با @NotBlank و @Positive Annotation Validators Bean Validation for Name,Year with @NotBlank and @Positive Annotation Validators

  • مدیریت خطای پیش فرض را با استفاده از ControllerAdvice سفارشی کنید Customize the Default Error handling using ControllerAdvice

  • اعتبارسنجی Bean برای فیلد فهرست با استفاده از @NotBlank Annotation Bean Validation for List Field using @NotBlank Annotation

اعتبارسنجی Bean با استفاده از Validators و ControllerAdvice Bean Validation using Validators and ControllerAdvice

  • اعتبار سنجی Bean برای نام، سال با @NotBlank و @Positive Annotation Validators Bean Validation for Name,Year with @NotBlank and @Positive Annotation Validators

  • مدیریت خطای پیش فرض را با استفاده از ControllerAdvice سفارشی کنید Customize the Default Error handling using ControllerAdvice

  • اعتبارسنجی Bean برای فیلد فهرست با استفاده از @NotBlank Annotation Bean Validation for List Field using @NotBlank Annotation

استفاده از ResponseEntity با Reactive Types Using ResponseEntity with Reactive Types

  • نیاز به ResponseEntity در Spring WebFlux Need for ResponseEntity in Spring WebFlux

  • استفاده از ResponseEntity برای تغییر پویا وضعیت Response Using ResponseEntity to dynamically change the Response Status

  • پاسخ 404 را برای نقطه پایانی getMovieInfoById اجرا کنید Implement 404 Response for the getMovieInfoById Endpoint

استفاده از ResponseEntity با Reactive Types Using ResponseEntity with Reactive Types

  • نیاز به ResponseEntity در Spring WebFlux Need for ResponseEntity in Spring WebFlux

  • استفاده از ResponseEntity برای تغییر پویا وضعیت Response Using ResponseEntity to dynamically change the Response Status

  • پاسخ 404 را برای نقطه پایانی getMovieInfoById اجرا کنید Implement 404 Response for the getMovieInfoById Endpoint

نوشتن کوئری های سفارشی با استفاده از ReactiveMongoRepository Writing Custom Queries using ReactiveMongoRepository

  • برای بازیابی MovieInfo بر حسب سال، یک پرس و جو سفارشی را اجرا کنید Implement a Custom Query to retrieve MovieInfo by Year

  • دریافت نقطه پایانی برای بازیابی MovieInfo بر اساس سال - با استفاده از @RequestParam GET Endpoint to retrieve a MovieInfo by Year - Using @RequestParam

  • یک تابع مخزن سفارشی برای بازیابی MovieInfo با نام بسازید Build a Custom Repository function to retrieve MovieInfo by name

نوشتن کوئری های سفارشی با استفاده از ReactiveMongoRepository Writing Custom Queries using ReactiveMongoRepository

  • برای بازیابی MovieInfo بر حسب سال، یک پرس و جو سفارشی را اجرا کنید Implement a Custom Query to retrieve MovieInfo by Year

  • دریافت نقطه پایانی برای بازیابی MovieInfo بر اساس سال - با استفاده از @RequestParam GET Endpoint to retrieve a MovieInfo by Year - Using @RequestParam

  • یک تابع مخزن سفارشی برای بازیابی MovieInfo با نام بسازید Build a Custom Repository function to retrieve MovieInfo by name

Spring WebFlux Under the Hood - مدل Netty و Threading Spring WebFlux Under the Hood - Netty and Threading Model

  • چگونه نتی با Spring Webflux کار می کند؟ How Netty works with Spring Webflux ?

  • نتی چگونه به درخواست رسیدگی می کند؟ How does Netty handle the Request ?

Spring WebFlux Under the Hood - مدل Netty و Threading Spring WebFlux Under the Hood - Netty and Threading Model

  • چگونه نتی با Spring Webflux کار می کند؟ How Netty works with Spring Webflux ?

  • نتی چگونه به درخواست رسیدگی می کند؟ How does Netty handle the Request ?

مقدمه ای بر ماژول وب کاربردی در Spring WebFlux Introduction to Functional Web Module in Spring WebFlux

  • مقدمه ای بر وب کاربردی Introduction to Functional Web

  • یک RestFul API ساده با استفاده از وب عملکردی بسازید Build a simple RestFul API using Functional Web

مقدمه ای بر ماژول وب کاربردی در Spring WebFlux Introduction to Functional Web Module in Spring WebFlux

  • مقدمه ای بر وب کاربردی Introduction to Functional Web

  • یک RestFul API ساده با استفاده از وب عملکردی بسازید Build a simple RestFul API using Functional Web

ساخت MoviesReview Service با استفاده از وب عملکردی Build MoviesReview Service using Functional Web

  • کلاس Repository را برای سند بازبینی تنظیم کنید Set up the Repository Class for the Review Document

  • برای ایجاد یک بررسی جدید، نقطه پایانی POST را بسازید Build the POST endpoint for creating a new Review

  • تست ادغام را برای ایجاد یک بررسی جدید بنویسید Write Integration test for creating a new Review

  • برای بازیابی همه نظرات، نقطه پایانی GET را بسازید Build the GET endpoint for retrieving all the Reviews

  • تودرتوی نقاط انتهایی با استفاده از تابع nest(). Nesting Endpoints using nest() Function

  • برای به‌روزرسانی یک بررسی موجود، نقطه پایانی PUT را بسازید Build the PUT endpoint for updating an existing Review

  • برای حذف یک بررسی موجود، نقطه پایانی DELETE را بسازید Build the DELETE endpoint for deleting an existing Review

  • برای بازیابی نظرات یک MovieInfoId، نقطه پایانی GET را بسازید Build the GET endpoint to retrieve reviews for a given MovieInfoId

  • Case تست یکپارچه سازی برای سرویس Reviews در کلاس ReviewsIntgTest Integration Test Case for the Reviews Service in the ReviewsIntgTest class

ساخت MoviesReview Service با استفاده از وب عملکردی Build MoviesReview Service using Functional Web

  • کلاس Repository را برای سند بازبینی تنظیم کنید Set up the Repository Class for the Review Document

  • برای ایجاد یک بررسی جدید، نقطه پایانی POST را بسازید Build the POST endpoint for creating a new Review

  • تست ادغام را برای ایجاد یک بررسی جدید بنویسید Write Integration test for creating a new Review

  • برای بازیابی همه نظرات، نقطه پایانی GET را بسازید Build the GET endpoint for retrieving all the Reviews

  • تودرتوی نقاط انتهایی با استفاده از تابع nest(). Nesting Endpoints using nest() Function

  • برای به‌روزرسانی یک بررسی موجود، نقطه پایانی PUT را بسازید Build the PUT endpoint for updating an existing Review

  • برای حذف یک بررسی موجود، نقطه پایانی DELETE را بسازید Build the DELETE endpoint for deleting an existing Review

  • برای بازیابی نظرات یک MovieInfoId، نقطه پایانی GET را بسازید Build the GET endpoint to retrieve reviews for a given MovieInfoId

  • Case تست یکپارچه سازی برای سرویس Reviews در کلاس ReviewsIntgTest Integration Test Case for the Reviews Service in the ReviewsIntgTest class

وب عملکردی تست واحد Unit Testing Functional Web

  • راه اندازی کلاس تست برای تست واحد Setting up Test Class for Unit Testing

  • واحد نقطه پایانی POST را برای ایجاد یک بررسی جدید آزمایش کنید Unit Test the POST endpoint for creating a new Review

  • موارد تست واحد برای سرویس Reviews در کلاس ReviewsUnitTest Unit Test Cases for the Reviews Service in the ReviewsUnitTest class

وب عملکردی تست واحد Unit Testing Functional Web

  • راه اندازی کلاس تست برای تست واحد Setting up Test Class for Unit Testing

  • واحد نقطه پایانی POST را برای ایجاد یک بررسی جدید آزمایش کنید Unit Test the POST endpoint for creating a new Review

  • موارد تست واحد برای سرویس Reviews در کلاس ReviewsUnitTest Unit Test Cases for the Reviews Service in the ReviewsUnitTest class

اعتبارسنجی Bean با استفاده از وب عملکردی Bean Validations using Functional Web

  • افزودن حاشیه‌نویسی/پیام‌های محدودیت در سند بازبینی Adding the Constraint Annotation/Messages in the Review Document

  • اعتبارسنجی Bean با استفاده از Validator Validating the Bean using the Validator

  • Unit Testing Bean Validation Unit Testing Bean Validation

اعتبارسنجی Bean با استفاده از وب عملکردی Bean Validations using Functional Web

  • افزودن حاشیه‌نویسی/پیام‌های محدودیت در سند بازبینی Adding the Constraint Annotation/Messages in the Review Document

  • اعتبارسنجی Bean با استفاده از Validator Validating the Bean using the Validator

  • Unit Testing Bean Validation Unit Testing Bean Validation

کنترل کننده خطای جهانی سفارشی در وب عملکردی Custom Global ErrorHandler in Functional Web

  • GlobalErrorHandler را در وب عملکردی پیاده سازی کنید Implement the GlobalErrorHandler in Functional Web

کنترل کننده خطای جهانی سفارشی در وب عملکردی Custom Global ErrorHandler in Functional Web

  • GlobalErrorHandler را در وب عملکردی پیاده سازی کنید Implement the GlobalErrorHandler in Functional Web

مدیریت ResourceNotFound در FunctionalWeb Handling ResourceNotFound in FunctionalWeb

  • منبع NotFound(404) در بررسی به‌روزرسانی با استفاده از GlobalErrorHandler Resource NotFound(404) in Update Review using GlobalErrorHandler

  • منبع یافت نشد (404) در بررسی به‌روزرسانی - رویکرد جایگزین Resource Not Found(404) in Update Review - Alternate Approach

مدیریت ResourceNotFound در FunctionalWeb Handling ResourceNotFound in FunctionalWeb

  • منبع NotFound(404) در بررسی به‌روزرسانی با استفاده از GlobalErrorHandler Resource NotFound(404) in Update Review using GlobalErrorHandler

  • منبع یافت نشد (404) در بررسی به‌روزرسانی - رویکرد جایگزین Resource Not Found(404) in Update Review - Alternate Approach

MoviesService - Rest Service سرویس MovieInfo و MovieReview را به هم متصل می کند MoviesService - Rest Service connects the MovieInfo and MovieReview Service

  • نمای کلی برنامه Overview of the Application

  • راه اندازی کنترلر در MoviesService Setting Up the Controller in MoviesService

  • معرفی Spring WebClient و پیکربندی WebClient Introduction to Spring WebClient & Configure WebClient

  • با استفاده از Spring WebClient، Client REST NonBlocking را برای MovieInfoService بسازید Build the NonBlocking REST Client for MovieInfoService using Spring WebClient

  • با استفاده از Spring WebClient، NonBlocking REST Client را برای ReviewService بسازید Build the NonBlocking REST Client for ReviewService using Spring WebClient

  • MoviesInfoRestClient و ReviewRestClient را با هم ترکیب کنید Combine the MoviesInfoRestClient and ReviewRestClient

MoviesService - Rest Service سرویس MovieInfo و MovieReview را به هم متصل می کند MoviesService - Rest Service connects the MovieInfo and MovieReview Service

  • نمای کلی برنامه Overview of the Application

  • راه اندازی کنترلر در MoviesService Setting Up the Controller in MoviesService

  • معرفی Spring WebClient و پیکربندی WebClient Introduction to Spring WebClient & Configure WebClient

  • با استفاده از Spring WebClient، Client REST NonBlocking را برای MovieInfoService بسازید Build the NonBlocking REST Client for MovieInfoService using Spring WebClient

  • با استفاده از Spring WebClient، NonBlocking REST Client را برای ReviewService بسازید Build the NonBlocking REST Client for ReviewService using Spring WebClient

  • MoviesInfoRestClient و ReviewRestClient را با هم ترکیب کنید Combine the MoviesInfoRestClient and ReviewRestClient

مدیریت استثناهای شبکه در WebClient Handling Network Exceptions in WebClient

  • استثناهای شبکه در خدمات به ارتباطات خدماتی Network Exceptions in Service to Service Communications

  • مدیریت 4XX در MoviesInfoService در WebClient Handling 4XX in MoviesInfoService in WebClient

  • مدیریت 5xx در MoviesInfoService در WebClient Handling 5xx in MoviesInfoService in WebClient

  • مدیریت خطای 4XX و 5XX را در ReviewsClient پیاده سازی کنید Implement the 4XX and 5XX error handling in ReviewsClient

مدیریت استثناهای شبکه در WebClient Handling Network Exceptions in WebClient

  • استثناهای شبکه در خدمات به ارتباطات خدماتی Network Exceptions in Service to Service Communications

  • مدیریت 4XX در MoviesInfoService در WebClient Handling 4XX in MoviesInfoService in WebClient

  • مدیریت 5xx در MoviesInfoService در WebClient Handling 5xx in MoviesInfoService in WebClient

  • مدیریت خطای 4XX و 5XX را در ReviewsClient پیاده سازی کنید Implement the 4XX and 5XX error handling in ReviewsClient

تست یکپارچه سازی خدمات خارجی با استفاده از WireMock Integration Testing External Services using WireMock

  • مقدمه ای بر WireMock Introduction to WireMock

  • راه اندازی Wiremock در تست های یکپارچه سازی SetUp Wiremock in Integration Tests

  • مقالات خرد برای MoviesInfoService و ReviewService Stubs for MoviesInfoService and ReviewService

  • شبیه سازی خطاهای 4xx در Wiremock Simulate 4xx Errors in Wiremock

  • شبیه سازی خطاهای 5xx در Wiremock Simulate 5xx Errors in Wiremock

تست یکپارچه سازی خدمات خارجی با استفاده از WireMock Integration Testing External Services using WireMock

  • مقدمه ای بر WireMock Introduction to WireMock

  • راه اندازی Wiremock در تست های یکپارچه سازی SetUp Wiremock in Integration Tests

  • مقالات خرد برای MoviesInfoService و ReviewService Stubs for MoviesInfoService and ReviewService

  • شبیه سازی خطاهای 4xx در Wiremock Simulate 4xx Errors in Wiremock

  • شبیه سازی خطاهای 5xx در Wiremock Simulate 5xx Errors in Wiremock

تلاش مجدد تماس های HTTP ناموفق Retrying Failed HTTP Calls

  • چرا تماس های HTTP ناموفق را دوباره امتحان کنید؟ Why Retry failed HTTP calls ?

  • با استفاده از retry() تماس های Http ناموفق را امتحان کنید Retry failed Http calls using retry()

  • تماس های Http ناموفق را با استفاده از retrySpec() دوباره امتحان کنید - با BackOff قبل از تلاش مجدد Retry failed Http calls using retrySpec() - With BackOff before Retry Attempt

  • تماس های Http ناموفق را با استفاده از retrySpec() دوباره امتحان کنید - امتحان مجدد استثناهای خاص Retry failed Http calls using retrySpec() - Retrying Specific Exceptions

  • استفاده مجدد از منطق امتحان مجدد در Rest Client های مختلف Reusing the retry logic across different Rest Clients

تلاش مجدد تماس های HTTP ناموفق Retrying Failed HTTP Calls

  • چرا تماس های HTTP ناموفق را دوباره امتحان کنید؟ Why Retry failed HTTP calls ?

  • با استفاده از retry() تماس های Http ناموفق را امتحان کنید Retry failed Http calls using retry()

  • تماس های Http ناموفق را با استفاده از retrySpec() دوباره امتحان کنید - با BackOff قبل از تلاش مجدد Retry failed Http calls using retrySpec() - With BackOff before Retry Attempt

  • تماس های Http ناموفق را با استفاده از retrySpec() دوباره امتحان کنید - امتحان مجدد استثناهای خاص Retry failed Http calls using retrySpec() - Retrying Specific Exceptions

  • استفاده مجدد از منطق امتحان مجدد در Rest Client های مختلف Reusing the retry logic across different Rest Clients

رویدادهای ارسال شده توسط سرور (SSE) Server Sent Events (SSE)

  • پیگیری رویدادهای ارسال شده توسط سرور (SSE) Catching up on Server Sent Events (SSE)

  • مقدمه ای بر سینک ها Introduction to Sinks

  • سینک - Hands On Sinks - Hands On

  • ایجاد یک نقطه پایان جریان در MoviesInfoService Build a Streaming Endpoint in MoviesInfoService

  • تست یکپارچه سازی برای نقطه پایانی جریان Integration Test for the Streaming Endpoint

  • ایجاد یک نقطه پایان جریان در MoviesReviewService Build a Streaming Endpoint in MoviesReviewService

  • با استفاده از WebClent در MoviesService یک کلاینت جریانی بسازید Build a Streaming Client using WebClent in MoviesService

رویدادهای ارسال شده توسط سرور (SSE) Server Sent Events (SSE)

  • پیگیری رویدادهای ارسال شده توسط سرور (SSE) Catching up on Server Sent Events (SSE)

  • مقدمه ای بر سینک ها Introduction to Sinks

  • سینک - Hands On Sinks - Hands On

  • ایجاد یک نقطه پایان جریان در MoviesInfoService Build a Streaming Endpoint in MoviesInfoService

  • تست یکپارچه سازی برای نقطه پایانی جریان Integration Test for the Streaming Endpoint

  • ایجاد یک نقطه پایان جریان در MoviesReviewService Build a Streaming Endpoint in MoviesReviewService

  • با استفاده از WebClent در MoviesService یک کلاینت جریانی بسازید Build a Streaming Client using WebClent in MoviesService

بخش پاداش Bonus Section

  • سخنرانی پاداش Bonus Lecture

بخش پاداش Bonus Section

  • سخنرانی پاداش Bonus Lecture

نمایش نظرات

نظری ارسال نشده است.

آموزش با استفاده از Spring WebFlux/SpringBoot، MicroServices Reactive بسازید
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
8.5 hours
117
Udemy (یودمی) udemy-small
26 مهر 1400 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
24,841
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Pragmatic Code School Pragmatic Code School

علاقه مندان به فناوری، مدرس آنلاین

Pragmatic Code School Pragmatic Code School

علاقه مندان به فناوری، مدرس آنلاین

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.