Full-Stack Web Development with Jakarta EE and Vue.js
by Marto Torres
- Length: 513 pages
- Edition: 1
- Language: English
- Publication Date: 2021-08-09
- ISBN-10: B09CB8CNM2
- Sales Rank: #0 (See Top 100 Books)
Your One-Stop Guide to Building Modern Full-Stack Applications with Jakarta EE and Vue.js
About the Author About the Technical Reviewer Acknowledgments Introduction Chapter 1 : Full-Stack Web Development with Jakarta EE Technical Requirements Using Jakarta Enterprise Edition as a Back-End Layer Java Enterprise Edition Jakarta Enterprise Edition Using Eclipse GlassFish Application Server: An Open Source Jakarta EE Reference Implementation Using Apache Netbeans IDE Jakarta EE Project Structure Running the Jakarta EE Project Summary Extended Knowledge Chapter 2 : Vue js as a Front-End Layer Technical Requirements Vue js Understanding NodeJS and NPM Hello World Project with a Vue js CLI Using Visual Studio Code and Vue js Vue js Project Structure Running a Vue js Project Debugging a Vue js Application v Summary Extended Knowledge Chapter 3 : Getting Started with Vue Js Technical Requirements Creating Our Business Entities Using TypeScript Defining the Role ts Enum Defining the User ts Entity Defining the State ts Entity Creating the Storage Using Vuex Defining the Vue js Components Defining the Navigation Structure UserList vue: Using Declarative Rendering, Methods, and Lifecycle Events UserForm vue: Using Props, Handling User Input, Conditional Rendering, and Emitted Events Defining the UserForm ts TypeScript Class UserNew vue: Reusing the UserForm Component and Router Redirection UserUpdate vue: Reusing UserForm Component with Props and Router Redirection The Final User Management Application Summary Extended Knowledge Chapter 4 : Requirement Analysis for Your Full-Stack Web Application Daniel’s Delivery Technical Details about Daniel’s Delivery Web Page Analyzing the Current Team and Costs A Proposal for the New Daniel’s Delivery Possible Causes of the Current Situation Defining a New Architecture An Agile Approach for the New Daniel’s Delivery Defining High-Level Features: Epics Schedule the Plan vi Writing Stories in an Iterative and Incremental Way Food Services Management Epic Delivery Flow Epic Finding Quality Attributes Security Epic Infrastructure Epic A Traversal Quality Attribute: Maintainability Summary Questions Chapter 5 : Modeling Your Entities and Data with JPA Technical Requirements Defining Your Entity-Relationship Model Extracting Business Entities from User Stories Choosing Entities and Properties Defining the Database Entity-Relationship Model Building Your JPA Entities Alternatives to Create JPA Entities Generating JPA Entities Using Netbeans Understanding JPA Configuration FoodServiceData Entity DeliveryData Entity ItemData Entity Understanding the persistence xml File Basics Designing the Persistence Layer Understanding the Packages Defining our Business Entities User Entity FoodService Entity FoodProduct Entity Item Entity Delivery Entity vii Defining Aggregates Designing Repositories Implementing the Persistence Layer Defining the Structure and Responsibilities FoodService Persistence Layer Delivery Persistence Layer FoodProduct Persistence Layer Defining the Provider for the CDI Testing the Persistence Layer Unit Tests with JUnit and Mockito Integration Tests Using Arquillian and Derby Summary Questions Chapter 6 : Designing Your Front-End UI with Vue Js Components Technical Requirements Defining the Basic Wireframes for New Daniel’s Delivery Home Page Wireframe Delivery Flow Food Service Settings Flow Splitting Your Wireframes into Vue js Pages and Components Delivery Page Food Services Settings Page Other Pages Creating Reusable Components and Compose Them in a Hierarchy Delivery vue FoodProduct vue FoodService vue Login vue Routing through URL to Components and Sending the Data Defining the Navigation Structure for the Delivery Flow Creating a Router Structure: Navigating to New Pages viii Delivery vue: Using Router-View for Navigation CartItems Component: A Vue js Approach Component Logic HTML Structure Summary Extended Knowledge Chapter 7 : Creating Your Back End with Jakarta EE Technical Requirements Designing and Implementing the Business Layer Packages for the Business Layer FoodService Business Layer FoodProduct Business Layer Delivery Business Layer Defining Your RESTful JAX-RS Services Designing the RESTful API Using JAX-RS as a RESTful Framework Putting It All Together Using Jakarta EE Contexts and Dependency Injection for Jakarta EE Joining Our New Daniel’s Delivery Website Layers Testing RESTful JAX-RS Services Using Arquillian Adding New Maven Dependencies for Arquillian Creating an Integration Test for DeliveryController Summary Extended Knowledge Chapter 8 : Connecting Your UI with Your Back End Technical Requirements Preparing the Back End for Integration Adding New Endpoints to Our Back End Allowing Cross Origin Resource Sharing Calls to Our Back End Handling Environment Properties for Jakarta EE Exception Handling in JAX-RS Integrating Vue js and the Back End Handling Environment Properties in Vue js Creating Axios Components to Handle API Calls Using Axios Components from the Vue js Components Handling Exceptions from Our Back-End Services Summary Extended Knowledge Chapter 9 : Securing Your Full-Stack Application Technical Requirements Security Basics: Authentication and Authorization Authentication: Who Are You? Authorization: What Can You Do? Understanding OpenID Connect Protocol The Authorization Code Flow in the New Daniel’s Delivery Website Using the Access and Refresh Tokens JSON Web Tokens (JWT) Keycloak: An Open Source Identity Provider Installing Keycloak Creating a Realm Creating a New User Configuring OpenID Connect Summary Extended Knowledge Chapter 10 : Authentication and Authorization Technical Requirements Using Keycloak as the Source of Users Keycloak Client New UserRepository Implementation x Authorization in JAX-RS Validating the Token Requesting the Token Using CORS to Add Security Authentication in Vue js Requesting Authentication and Tokens Using Vuex to Keep the Token Login: Putting the Whole Process Together Summary Extended Knowledge Chapter 11 : Design Patterns and Best Practices Technical Requirements Decoupling the View and Database from Your Business Rules Main and Abstraction Using the Dependency Inversion Principle to Decouple Main and Abstraction Putting Together the Main and the Abstraction Using the CDI Container Stateless Servers as a Priority Why Stateful Servers Are Not Cool to Scale Defining What Kind of Security You Want Basic Form vs OpenID Connect Protocol External vs Internal Security Delegation Single Page Application vs Back-End Pages Some Time Ago JSP Browsers Improved and SPA Was Born Micro Front Ends: Mixing the Two Worlds Choosing the Right Database Relational Databases Non-Relational databases Aligning Your Requirements with Your Database Defining Your RESTful API Resources and Not Operations Summary Extended Knowledge Chapter 12 : Cloud Architecture Implementation Technical Requirements Defining the AWS Architecture Using CloudFormation Jakarta EE Using ECS, RDS, and Load Balancer VueJS Using S3 and CloudFront SSO Using Cognito Summary Extended Knowledge Chapter 13 : Continuous Integration and Deployment Technical Requirements What Are Continuous Integration and Deployment? CodePipeline for Jakarta EE Source S3 CodeBuild in Develop and Production Environment CodeBuild in Develop and Production Environment Active Approval Configure the Pipeline through the AWS Console CodePipeline for VueJS Source S3 CodeBuild Dev and Prod CodeDeploy Dev and Prod Active Approval Configure the Pipeline through the AWS Console AWS Daniel’s Delivery Website Summary Extended Knowledge xii Chapter 14 : Testing and Monitoring Technical Requirements AWS Monitoring RDS MySQL ECS Fargate Cluster GlassFish Console Logs JMeter Load Testing What Is Load Testing? Using JMeter Summary Extended Knowledge Index
Donate to keep this site alive
To access the Link, solve the captcha.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.