Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Arturo Montejo Ráez
/
WBT2425_0
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
20
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
b98ab068
authored
Mar 18, 2025
by
Arturo Montejo Ráez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
api working in react
parent
314105a1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
7 deletions
fastapi/main.py
react/src/api.js
react/src/app/available/page.js
fastapi/main.py
View file @
b98ab068
from
fastapi
import
FastAPI
,
Depends
from
fastapi.middleware.cors
import
CORSMiddleware
from
datetime
import
date
from
typing
import
List
from
sqlalchemy.orm
import
Session
...
...
@@ -10,6 +11,20 @@ from book.schemas import Book # Import Book schema
app
=
FastAPI
()
# Allow CORS
origins
=
[
"http://localhost:3000"
,
# Add other origins as needed
]
app
.
add_middleware
(
CORSMiddleware
,
allow_origins
=
origins
,
# Allow specific origins
allow_credentials
=
True
,
allow_methods
=
[
"*"
],
# Allow all methods (GET, POST, PUT, DELETE, etc.)
allow_headers
=
[
"*"
],
# Allow all headers
)
# User CRUD Operations
@app.post
(
"/user/"
,
response_model
=
user_schemas
.
User
)
def
create_user
(
user
:
user_schemas
.
UserCreate
,
db
:
Session
=
Depends
(
get_db
)):
...
...
react/src/api.js
0 → 100644
View file @
b98ab068
import
config
from
'./config'
;
const
apiBaseUrl
=
config
.
apiBaseUrl
;
export
const
fetchAvailableBooks
=
async
()
=>
{
try
{
const
response
=
await
fetch
(
`
${
apiBaseUrl
}
/book/available`
);
if
(
!
response
.
ok
)
{
throw
new
Error
(
`HTTP error! Status:
${
response
.
status
}
`
);
}
const
data
=
await
response
.
json
();
return
data
;
}
catch
(
error
)
{
console
.
error
(
'Error fetching available books:'
,
error
);
throw
error
;
}
};
react/src/app/available/page.js
View file @
b98ab068
...
...
@@ -3,6 +3,7 @@
import
{
useState
,
useEffect
}
from
'react'
;
import
BookList
from
'../../components/booklist'
;
import
config
from
'../../config'
;
import
{
fetchAvailableBooks
}
from
'../../api'
;
export
default
function
Page
()
{
const
[
books
,
setBooks
]
=
useState
([]);
...
...
@@ -13,13 +14,7 @@ export default function Page() {
const
fetchBooks
=
async
()
=>
{
try
{
setLoading
(
true
);
const
response
=
await
fetch
(
`
${
config
.
apiBaseUrl
}
/books/available`
);
if
(
!
response
.
ok
)
{
throw
new
Error
(
`HTTP error! Status:
${
response
.
status
}
`
);
}
const
data
=
await
response
.
json
();
const
data
=
await
fetchAvailableBooks
();
setBooks
(
data
);
}
catch
(
err
)
{
setError
(
err
.
message
);
...
...
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