The brackets at the end of each step indicate the alias’s or IntelliJ Live Templates to use. You can find the template definitions at mraible/idea-live-templates.
-
start.spring.io: JPA, H2, Rest Repositories, Lombok, Web, and Actuator [
boot-start
]http https://start.spring.io/starter.zip dependencies==h2,data-jpa,data-rest,lombok,web,devtools,actuator -d
-
Add
Car
,CarRepository
, andApplicationRunner
bean [boot-entity-lombok
,boot-repo
,boot-data
] -
Start and see list of cars in console:
./mvnw spring-boot:run
-
Create
CoolCarController
with a/cool-cars
endpoint [boot-cool
] -
Restart and confirm http://localhost:8080/cars works in browser and with HTTPie
http POST :8080/cars name='VW Bus' http PUT :8080/cars/1 name='Hefe the Bus' http DELETE :8080/cars/1
-
Run
ng new client
; show app withnpm start
-
Install Angular Material [
ng-material
]npm i @angular/material @angular/cdk @angular/animations
-
Generate a car service to talk to the API [
a-httpclient-get
]ng g s shared/car/car
-
Add
HttpClientModule
as an import inapp.module.ts
-
Generate a
CarListComponent
and modify it to useCarService
ng g c car-list
-
Update
car-list.component.html
to show the list of cars [a-ngFor
] -
Update
app.component.html
to use the<app-car-list>
component -
Start the app, show error, modify
/cool-cars
and repository to use@CrossOrigin
-
Add Angular Material imports and modify HTML [
mat-imports
,mat-toolbar
,mat-card
] -
Modify
styles.css
to specify theme and icons [mat-style
] -
Add Animated Cars with Giphy [
ng-giphy-service
,ng-giphy-foreach
]
-
Create a
CarEditComponent
to modify car datang g c car-edit
-
Add a link to edit component (+add button) in
car-list.component.html
[mat-edit
,mat-add
] -
Import the
FormsModule
inapp.module.ts
-
Add routing to list and edit components in
app-routing.module.ts
[ng-routes
] -
Modify edit component and car service to add methods for saving and deleting. [
ng-service-api
,ng-service-cud
,ng-edit
] -
Make the edit template look good + add some CSS. [
mat-form
] -
Remove
<app-car-list/>
fromapp.component.html
, restart, rejoice!
-
Add Spring Security OAuth and dependencies [
ss-oauth
] -
Create OIDC app in Okta; add properties to
application.yml
[ss-okta
] -
Add
@EnableResourceServer
and show error athttp://localhost:8080
-
Add Okta’s Angular SDK [
okta-angular
]npm i @okta/okta-angular
-
Update
app.module.ts
to have Okta config and useOktaAuthModule
component [okta-config
,ng-oauth
] -
Update
app-routing.module.ts
to have a new route for the redirect URI callback [ng-callback
] -
Create an
AuthInterceptor
inokta/auth.interceptor.ts
and register it [ng-interceptor
,ng-provider
] -
Modify
app.component.html
to have login and logout buttons + adjust CSS [mat-login
,toolbar-spacer
] -
Change
app.component.ts
to be security aware [ng-auth
] -
Show app and issue with car list component
-
Create
HomeComponent
as a landing page and add routes [mat-home
,ng-auth
] -
Watch demo fail because of CORS
-
Add a
corsFilter
to Spring Security and rejoice 🎉 [cors-filter
]