Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bookstore-api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Narendar Vakiti
bookstore-api
Commits
e02c1c34
Commit
e02c1c34
authored
Jun 12, 2020
by
Narendar Vakiti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added microservice component eureka client
parent
adf5d3b8
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
156 additions
and
9 deletions
+156
-9
README.md
README.md
+8
-2
pom.xml
pom.xml
+22
-2
BookstoreApiApplication.java
src/main/java/com/bookstore/BookstoreApiApplication.java
+2
-0
Admin.java
src/main/java/com/bookstore/bean/Admin.java
+14
-0
Book.java
src/main/java/com/bookstore/bean/Book.java
+4
-0
BookRequest.java
src/main/java/com/bookstore/bean/BookRequest.java
+3
-1
AdminController.java
src/main/java/com/bookstore/controller/AdminController.java
+31
-0
AdminRepository.java
src/main/java/com/bookstore/dao/AdminRepository.java
+13
-0
AdminService.java
src/main/java/com/bookstore/service/AdminService.java
+10
-0
AdminServiceImpl.java
src/main/java/com/bookstore/service/AdminServiceImpl.java
+28
-0
BookServiceImpl.java
src/main/java/com/bookstore/service/BookServiceImpl.java
+11
-4
application.yml
src/main/resources/application.yml
+10
-0
No files found.
README.md
View file @
e02c1c34
This springboot application for implementing rest services
###### **BookStore-API:**
**BookStore-API URL's**
This application is about store books details along with author details and address details. It is only for implementing Rest API's
1.
Added EurekaClient to this application
2.
Added to Zuul Proxy Server
3.
Used Java 8 Features
**Few of BookStore-API URL's**
*
http://localhost:8083/getbookdetails
*
http://localhost:8083/getauthordetails
...
...
pom.xml
View file @
e02c1c34
...
...
@@ -12,10 +12,13 @@
<artifactId>
bookstore-api
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<name>
bookstore-api
</name>
<description>
Demo project for Spring Boot
</description>
<description>
Project for Spring Boot - BookStore-API
</description>
<properties>
<java.version>
1.8
</java.version>
<spring-cloud.version>
Hoxton.SR1
</spring-cloud.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
</properties>
<dependencies>
...
...
@@ -25,6 +28,11 @@
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-netflix-eureka-client
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
...
...
@@ -54,7 +62,7 @@
<artifactId>
lombok
</artifactId>
<optional>
true
</optional>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
@@ -105,6 +113,18 @@
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-dependencies
</artifactId>
<version>
${spring-cloud.version}
</version>
<type>
pom
</type>
<scope>
import
</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
...
...
src/main/java/com/bookstore/BookstoreApiApplication.java
View file @
e02c1c34
...
...
@@ -2,8 +2,10 @@ package com.bookstore;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.netflix.eureka.EnableEurekaClient
;
@SpringBootApplication
@EnableEurekaClient
public
class
BookstoreApiApplication
{
public
static
void
main
(
String
[]
args
)
{
...
...
src/main/java/com/bookstore/bean/Admin.java
View file @
e02c1c34
package
com
.
bookstore
.
bean
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.ToString
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table
(
name
=
"admin"
)
public
class
Admin
{
private
int
adminId
;
...
...
src/main/java/com/bookstore/bean/Book.java
View file @
e02c1c34
...
...
@@ -38,4 +38,8 @@ public class Book {
@JoinColumn
(
name
=
"author_ID"
)
private
Author
author
;
@ManyToOne
@JoinColumn
(
name
=
"admin_ID"
)
private
Admin
admin
;
}
src/main/java/com/bookstore/bean/BookRequest.java
View file @
e02c1c34
...
...
@@ -15,7 +15,7 @@ public class BookRequest implements Serializable{
*
*/
private
static
final
long
serialVersionUID
=
-
1450252897638356990L
;
private
int
bookId
;
private
String
bookName
;
private
double
bookPrice
;
...
...
@@ -24,5 +24,7 @@ public class BookRequest implements Serializable{
private
String
rating
;
private
LocalDate
publishedDate
;
private
String
authorName
;
private
String
addedBy
;
}
src/main/java/com/bookstore/controller/AdminController.java
0 → 100644
View file @
e02c1c34
package
com
.
bookstore
.
controller
;
import
com.bookstore.bean.Admin
;
import
com.bookstore.service.AdminService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
public
class
AdminController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
AdminController
.
class
);
@Autowired
private
AdminService
adminService
;
@PostMapping
(
"/saveadmin"
)
public
Admin
saveAdmin
(
@RequestBody
Admin
admin
){
Admin
adminRes
=
new
Admin
();
try
{
adminRes
=
adminService
.
saveAdmin
(
admin
);
}
catch
(
Exception
e
){
logger
.
error
(
"Exception while saving admin details :: "
+
e
.
getMessage
());
}
return
adminRes
;
}
}
src/main/java/com/bookstore/dao/AdminRepository.java
0 → 100644
View file @
e02c1c34
package
com
.
bookstore
.
dao
;
import
com.bookstore.bean.Admin
;
import
com.bookstore.bean.Author
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.Query
;
public
interface
AdminRepository
extends
JpaRepository
<
Admin
,
Integer
>
{
@Query
(
"SELECT a FROM Admin a WHERE a.name = ?1"
)
Admin
findAdminByName
(
String
adminName
);
}
src/main/java/com/bookstore/service/AdminService.java
0 → 100644
View file @
e02c1c34
package
com
.
bookstore
.
service
;
import
com.bookstore.bean.Admin
;
import
com.bookstore.dao.AdminRepository
;
import
org.springframework.beans.factory.annotation.Autowired
;
@FunctionalInterface
public
interface
AdminService
{
public
Admin
saveAdmin
(
Admin
admin
);
}
src/main/java/com/bookstore/service/AdminServiceImpl.java
0 → 100644
View file @
e02c1c34
package
com
.
bookstore
.
service
;
import
com.bookstore.bean.Admin
;
import
com.bookstore.dao.AdminRepository
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Service
public
class
AdminServiceImpl
implements
AdminService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
AdminServiceImpl
.
class
);
@Autowired
private
AdminRepository
adminRepository
;
@Override
public
Admin
saveAdmin
(
Admin
admin
)
{
Admin
adminResponse
=
null
;
try
{
adminResponse
=
adminRepository
.
save
(
admin
);
}
catch
(
Exception
e
){
logger
.
error
(
"Exception while saving admin details :: "
+
e
.
getMessage
());
}
return
adminResponse
;
}
}
src/main/java/com/bookstore/service/BookServiceImpl.java
View file @
e02c1c34
...
...
@@ -6,16 +6,14 @@ import java.util.Optional;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
com.bookstore.bean.*
;
import
com.bookstore.dao.AdminRepository
;
import
com.bookstore.exceptionhandling.BookNotExisted
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.bookstore.bean.Author
;
import
com.bookstore.bean.BookRequest
;
import
com.bookstore.bean.Book
;
import
com.bookstore.bean.Status
;
import
com.bookstore.dao.AuthorRepository
;
import
com.bookstore.dao.BookRepository
;
import
com.google.gson.Gson
;
...
...
@@ -29,6 +27,9 @@ public class BookServiceImpl implements BookService{
@Autowired
private
AuthorRepository
authorRepository
;
@Autowired
private
AdminRepository
adminRepository
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
BookServiceImpl
.
class
);
...
...
@@ -76,6 +77,12 @@ public class BookServiceImpl implements BookService{
}
else
{
bookStore
.
setAuthor
(
author
);
}
Admin
admin
=
adminRepository
.
findAdminByName
(
book
.
getAddedBy
());
if
(
author
==
null
){
logger
.
info
(
"Admin is not existed with name :: "
+
book
.
getAddedBy
());
}
else
{
bookStore
.
setAdmin
(
admin
);
}
Book
books
=
bookRepository
.
save
(
bookStore
);
status
=
new
Status
(
"Book details are added successfully"
,
true
);
if
(
books
==
null
){
...
...
src/main/resources/application.yml
0 → 100644
View file @
e02c1c34
spring
:
application
:
name
:
bookstore-api
eureka
:
client
:
serviceUrl
:
defaultZone
:
${EUREKA_URI:http://localhost:8761/eureka}
instance
:
preferIpAddress
:
true
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment