From 233526754b0f171ab54492aaad85b47b8693f21d Mon Sep 17 00:00:00 2001
From: HoseinA05 <139102040+HoseinA05@users.noreply.github.com>
Date: Tue, 23 Dec 2025 08:49:57 +0000
Subject: [PATCH] Initial commit
Created from https://vercel.com/new
---
.gitignore | 10 ++
README.md | 51 +++++++
main.py | 349 +++++++++++++++++++++++++++++++++++++++++++++
public/favicon.ico | Bin 0 -> 7896 bytes
pyproject.toml | 8 ++
requirements.txt | 2 +
6 files changed, 420 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 main.py
create mode 100644 public/favicon.ico
create mode 100644 pyproject.toml
create mode 100644 requirements.txt
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c3186d0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+.vercel/
+.venv/
+venv/
+__pycache__/
+*.pyc
+*.pyo
+*.pyd
+.Python
+.DS_Store
+.env*
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..99e23df
--- /dev/null
+++ b/README.md
@@ -0,0 +1,51 @@
+# FastAPI Starter
+
+Deploy your [FastAPI](https://fastapi.tiangolo.com/) project to Vercel with zero configuration.
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/vercel/vercel/tree/main/examples/fastapi&template=fastapi)
+
+_Live Example: https://vercel-plus-fastapi.vercel.app/_
+
+Visit the [FastAPI documentation](https://fastapi.tiangolo.com/) to learn more.
+
+## Getting Started
+
+Install the required dependencies:
+
+```bash
+python -m venv .venv
+source .venv/bin/activate
+pip install .
+```
+
+Or, if using [uv](https://docs.astral.sh/uv/):
+
+```bash
+uv sync
+```
+
+
+## Running Locally
+
+Start the development server on http://0.0.0.0:5001
+
+```bash
+python main.py
+# using uv:
+uv run main.py
+```
+
+When you make changes to your project, the server will automatically reload.
+
+## Deploying to Vercel
+
+Deploy your project to Vercel with the following command:
+
+```bash
+npm install -g vercel
+vercel --prod
+```
+
+Or `git push` to your repository with our [git integration](https://vercel.com/docs/deployments/git).
+
+To view the source code for this template, [visit the example repository](https://github.com/vercel/vercel/tree/main/examples/fastapi).
diff --git a/main.py b/main.py
new file mode 100644
index 0000000..5c154bc
--- /dev/null
+++ b/main.py
@@ -0,0 +1,349 @@
+from fastapi import FastAPI
+from fastapi.responses import HTMLResponse
+
+
+app = FastAPI(
+ title="Vercel + FastAPI",
+ description="Vercel + FastAPI",
+ version="1.0.0",
+)
+
+
+@app.get("/api/data")
+def get_sample_data():
+ return {
+ "data": [
+ {"id": 1, "name": "Sample Item 1", "value": 100},
+ {"id": 2, "name": "Sample Item 2", "value": 200},
+ {"id": 3, "name": "Sample Item 3", "value": 300}
+ ],
+ "total": 3,
+ "timestamp": "2024-01-01T00:00:00Z"
+ }
+
+
+@app.get("/api/items/{item_id}")
+def get_item(item_id: int):
+ return {
+ "item": {
+ "id": item_id,
+ "name": "Sample Item " + str(item_id),
+ "value": item_id * 100
+ },
+ "timestamp": "2024-01-01T00:00:00Z"
+ }
+
+
+@app.get("/", response_class=HTMLResponse)
+def read_root():
+ return """
+
+
+
+
+
+ Vercel + FastAPI
+
+
+
+
+
+
+
+
Vercel + FastAPI
+
+
from fastapi import FastAPI
+
+app = FastAPI()
+
+@app.get("/")
+def read_root():
+ return {"Python": "on Vercel"}
+
+
+
+
+
+
Interactive API Docs
+
Explore this API's endpoints with the interactive Swagger UI. Test requests and view response schemas in real-time.
+
Open Swagger UI →
+
+
+
+
Sample Data
+
Access sample JSON data through our REST API. Perfect for testing and development purposes.
+
Get Data →
+
+
+
+
+
+
+ """
+
+
+if __name__ == "__main__":
+ import uvicorn
+ uvicorn.run("main:app", host="0.0.0.0", port=5001, reload=True)
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..cbe6034518a56eabf83b4b86f478e47d787ca1e1
GIT binary patch
literal 7896
zcmWkz2Q=H?7yl*^d+$wKBUFu|_NZAqwpMMWRMFZyv8zUlwq}A9F4K>D{&opZi-Jk%xW|v8yG2Fl_3T
zo&O(-xv^f{50tA9Z+=L}Nud#60!|Yov}@~ESv9vF%?3@OA|q_yy*u))nzQ>-p4vhi
zuQLm#G<9IT15T9kv=~(VuXa6aS7YssZ2nPO=kRfm)0m`H={LDT+Yf$Gc=A50PlHQY
zNmJ0Wxk@nsIJPxj~ggJB%UG3V
zUHa)1ZEiYTy^oH4SO7#?$C*TFVN&KpN5(NB&&D(26EdU#-7=8MzBKs#vx6=pv~4{#
zkugms90cXzq0{c6Bb(yg*=vJz^2lOc+tkl5OH}#9w7zK^90*_#5jZu330(4>K-3R+
zrh1?qqR;ofkvZ>PZb%qghus{TOp@U(LnUMQDMv@2&p)v|mww0_h?eeMUuWSH9w(d_
z-j4lU{!b5Q!I59dvc~~n|4gl)P3Rs>09)EJF@gANZI-%2L*s|yu{UG}^1O>Kl0Cyb
zH#}HWg>G^5Idq)YyW0ZusO!hHZqWFeESs|Ue8y-Xt7@4ngeg>-5b|#zEh?OT1$G}4
zP5IqVR^kDe;D&G8mXTUql$&i}TjlJ0^^(i(h^6E+BWhXqQyo?2r?6A6jVTN%tLa5f
z_=D7VBUy~)uZx%`u?OaBmTA{MY2rWPd_1K*
zaAFWE=Fc83(L{uOb3#
zxa4c)fP`g$Wg$*`G5imLc&taRZ3O4Sn<2JBbKW2rlOk4o01dHE;qfwMoge135r|~>
zP3;&4!z0Tz)JD$&27W||MWjQWpBE)Qzhg8G=cRD9kvf%0rf%QqHj?aW5%Er;_G<#t
zqjh95`{Gzb|K$h!Idlo2g~S$T5{)2sE?cRDC0zU|
zF=DTK`rp0u2c7Di9x1H^ja`*
z`AG&&M7K|>Jo(10Gc!tkJS)yCJ4l|UgWo9ze+*C3GL2Cw8ISdkyF
z;byk_B?VwvrO*o{VvMZHTYx|1eHT|*ckTxkMAehE9`2Om0@6*|kTSu9p_#VT+rT}z
zOE**YV&qmoeRkv&CXmZmcyqAvG8s>u#d374N18rfk6ol$xdsfUBDocviJ#^31py;4
zcY>TG_s#o8AZ7W{b8&p*@BYI+Pn+HSE0Q+0SSxU#2;q$zX!eh{>B8YO_b;%zIaHFt
zUI(~`;6pOueKq^(^{x#GM+=4s8@B+5oJZ{vi8yX~SvEvIOw-ll9<+o~nM(h3WM5v<
z>kfY=e?k`UaS{d$0C5>baiOO?^1*Sqy$ypBzYD}u8k{md4%6tYdCVtII*Ont=zJi7
zS{|I1$~;?)jpoOQ>Ks(giD0s%sXEg_Ewntp2=J=ZV^AtbD5&9-IpY9qST$H6sgQ8JUX9TRgVF0tad>5b9iAp(Q
zjAP>1xU&@W8x);M5!xq6M_QPT=mcui{()UU1)V4=GrCRXn7Ef?B2^wLX>~^QEx07y
zJ(+I3^bp(!=gEXJO6ad>X!%mb;z=lEfudjh0c#-=9eHf=Wdj_W{OAUKG9~^hUTLri
zRk7YFL3-R`1RrNgr20-*f9i2PkY}`=f6!e6yjodn`eEFn_MfL9i?fkTw`V#UJlWaL
z^dBs^@0iUdQGR4BQk<5#dNbpvINP?|$j^t6`PJX#7pB@EU%F-f;w0}2?f=bY1cW7d#1VF4L)(u7Mrjd{}pEuX6gH`ibB0
zMpIlKi^4RIfAi!X?nHS>Mnau|MB4{&KT!zOrN-Gb7G}q)21*e4)7-cl4TG@?pxx8}
zzwA%Fu+uT@+vy*;86BYF<=;ql418+6$oMWW0JdMO5HwoU$NN{0+lnDgspeByz1LPY
zj$;`Jw{iiyX-_g>N8
z>f7m28weUte6OYT%-3?|h&Nc87UZInKlhvio?q8BAHgQSL(`;`HB}aRZ$a;bDOL!t
zITX&JPDd;jSFv>Kv0t0w<)iBqAS(VhHeb^p5?IRbduGXh^yY1P{h5)rR5*t+e@os^
zUl$wnvL*YG@S3!QeKz!MF9F9Dod1f^U4EqFl7lZ?bnWFW%Fpe!1@RYXv3D(J6|;6f#=T?CDmI+7A1q4DTPdE6&%ks
z4#YCNsKJQxxNK@#3U#zz^0li5?i4G3vjQVh8ubzqHwc!cR3S(IGp3Xo=>3)dY2k11
z%F0KeGVe|HOd^Mt6iAsiyk=ciPCYYTz441@?(hXN{B9S~WO&c5Pe!mBU>{ffY=r97
ztEV|ibj*3VPA98C_r9k^$3aCd^flZ_aL
zzbA9i7^HbFLM<=^e#ig{#6CFs!R1XJksxdME;*dU;^UG|c8_aFUvGDJR{ptW*8Y##
z?$g#cr`jsbVT90&9qFD7Tp_ZD${$n_zGr{f9x_-%>Xt%K;^V&P%6~6sQ*3a^URrQt
zeY)?&_VJ}a%&WFe^R)H)AX%_1!*|Q$glbJkgiH2l{emjqbSi#Jy~xDM%&VlNNF3K`VyxRj!3$1-{-f^<{q2c=5sFnssoDB
z<;mGNbNo7tq;$jks}@LeW!b}>hpq5T=9CQ~zvNc1xzAipD4?9&2j{lMA#V)mO>!5W
z!P1sMY0wgo?R}s9`?jwHaB-N89uav^JO2?Dov?e9WB!;L$Aa7MrYPY^c_4;drCB(C
zWcdnPxcqftyARFlRp!{e+Q-yHlwmsNw|&)x{b6Xu7t>m@f4{BFU;TzNsmdKpB}(LQ
z1acmOY>GK>VG`DlDp^oRS$a=MLXiH5#ma24T<)nm3ORo{5SC9gxp!5ndH+87XEC><
z#oJCz6ee&+cfAQ^%o>TcZ2(MllmHJ6En5#r_3@jxZ_zw3>^g4||7#904DimL21m2f
z*5upr$Kd$FLQD^!#eP5ZwscYnp#R~fu3!2i>FPQzc+BkkY^GIgmieSeR+MS1X}%SS1Q*dhs6Dh8Y7L4u^!Iv%R=h|*>^$8G)`v$GQt5nA}iDiue`ac
zkL^d&w9K%-|Bb--e;Iz-wi0^nWKstxxKUXsMo_mGZmy7K$~MNX_im$C2VT;7r6jd=
zAl`>mM4DGi0@rJr*@_sVDLJ<5p?N}H%$eGB+946VL`BJSTce6n3e<5Kk*Sb$;(nFo
zz?!-e0YOMw@C8!&5-lZYv7muUgqDFsnONLZe@7)ylq#8&H?+?>G&1j4x;vAe9j2M$
zuE{@C7|;(&0;lb@Lg9BK5lM2ApY~t{yS~r6XvBacXfR}a=>!Xt!8~1fMIZ@LMRO}I
z2lDs)d7vuWf#_(NrLj@zKtgTA*5l|2lvDmuiht5KA2B_z;&i&JR3gl|a4$W5dj1+t
z4^4G_$RB?OBenh7*5yfN!h~NmYpgQ{>rU{{U3juL5xnSdsXibBjzE?HWAr&1EVxoa
z$?%|z%|YneUj<>ZeofX*Q8%e^hx%;0Tn$_g$WenMp@LE$*3EPxcfX}tK>_mr#(ACO
zmK_!@N!hi9PN-%s&f=TS&6dM`o!1sV10;KY^T-Wc{}gT$M~Dp0_!HLLoW9ip6zw|k
zyuLa{*0ktDh>_K8{7LS)Rlde!6t3}HaSt{?J0ec+x~o4q;EQn#SHMT8?8ck_f#E!M
zrOt6t>KrM*jw&&T@~xLHLt=3!>%Ta)lN_kk7kxHz4DcD)HoQ>eOdaeUCt|;evz~02_N}XDi4r#=;Sv{rL*jLESjY9URoW?vtU|wQ&?@f93PkX9vNS3^w
zdf#ZpI}O$n(;DsZx|~mJILFSd%1i<1RB3;1vM3ht7R=*RyGZFmzJ2`{%KqM096#uz
zyV~8Ez6Jxbg;~MPJxiem!89!khQ?sr^
z4+He8w~Tqu<0I#jH~;(L{xua^4_bvdjHHZt;k`W%49aB4rfo4;8
zYQ@9Nll8fbPn@zpEj;F|?u)xIIzP<&6Y(AD`W))2S4-7x)>?hei8y$XLXNhno%DR3
z(FLwg8#=5SmJGW_yh9Yoj!UN
z@v(_M*&JWWj8u>lBnnH8Mkr)%49oK|aw6U>veyIjUn5t}E$EJLd$D`prFnTz~Qhl{$(OLodM^FWGa>Fwv6?wNPWx>z2H!bcg`$+
zoV>pA;v@N;h|+eOm?>$?5G-|(r5gjJ4
zyG7?}tgXa#kdW?7)cbW;$|a7K?cHq?06^*Z#7iG^qTkP+zY*Q=_NB2VU&C!RV8-Y(
z75Q!2_FX{^>@potS1k*OmZAMyBYfb>Vh?BA&szzVe7_HGY*_$y{d8o?UCADA&Hu3f
zej++{quImRy5B46VgwvUZ%G{629cW(>wZ!aoif}cmmS;N=nLvT-skz@45PBD)?
zV?-0BS^>Z~KRR`@|D4PHQyitrsey+~507Bsi>v@`kOQ<<8+1D&_Qx$q*q1N12}U>}
z%uuKI(zb?tbO*xl59ZLtMdo{G?$(9sezD92Sn|};XA}PKGRYadOVh(Z$FcU0y&`yL
zOX>#=sld;sL*T!NKU6lFvekm^+(f%=k~7KcZ7_zg06nzCt--xkpKsj4ck&BDA`$C4
zfTZo;HcDmski`hC>X87`DhEV7f;$~L{^+KzWUe>Bcw}-AG^@f6+Ay$0GL^&<
zB9;v0d{*BAMVY>bPM5@r*-3j!Y<0{L7rc?B9qrfJsmcD+{aB_F(#+T{dx;b~iDo=L
zx}UT@p8b5rsP9c0yKc$xLtPfVFLutK@c!StK-{g0BB|SqkCU$fUzXyoii7JJ+l%*C
zNJ`)U3QeTHU6KFeAv3Bp_n4}lI0d-ri2*xXy&@G`E71OCLg_3ottgs|@IAaF35@F{
zr+5CnbO5?;-yQ?jy}}zqG3{gqQBpw*t_tQ&{;eD}X7hTXl=WY_9-u9eXyJ7qKrxhF
z=dgxv?o?W4=)3IZ8&7Z=9t$M=D5oqFH(hSwDXw+G;s@kKPa}hnV-OcQI^6RGn*uH#
zPr+f=gCQXrHkIf0@imsS0cX@b=4^pbLKcn+ehV%4%1fqW$l1miG)ou@P)--c^3uEv;g8L*~-&hiC~Rabla&Y_Rqa`4%4-WtiBCZSwPYTqf)Pu(yPQC
zA>%OV5mJUJpAS7<{ivk5lNGH~BoBX4ZvQuUKit!UbWL}gR&na4wM>!>{uezzWDRqg
zqWk0A@mukQB93SN$Sgh_D%$uLRtW_6e~zFHDK|RsJkKi=dzOG-aUj}5a?ZQ+6ZeAH
z>#Re05qy^Y_wSjNM*+QPN?3Cm8ebd?{N^6`0;he(0sF6p4ax{A5%hN
z2uN!Y=Ws5E)88=Yorx0k;dMkjGJ*@w8DYUj*(2plTq+s^rDFVrq?-|M1CPm+G+Xmd
z+TZ=##DhQY==Q1b!nsg&QF~EugQcL(j@3zyj%9U|&z8VDW+j!)bl(jMDLSc$QFxDb
z*Aye6$FQFPJ`!O&R?bGzbmjemZ%T}Qa(S0$r92f}J05(Sn_~HS3}qGb$x4mIt~5Sx
zJ$Jl=TcQhf5z+p;)kx;!=g4z?iJpg5&=S4}v&FPuO$WbxFIAY2U$~NErD{1@Q1|-j
zu}lguRdPK|#{tBMQS@55bqnJ+)wg;xYxt9Y
z?)5-*S-zQmB`@XRD+8xWFze!;rv|K#wMD;-_B~VVr%(B4nUl}3dP=#C8AIwD8KG0owoR<=s5dT{MCYf`q9V>li<~v950aYsPq`5385k)u8GSNX@n5f
z@GcS_F=S&}086`T0%Hy6KsU(6Ok@s4o!_W$VO^-t7CY(ZUI&lFPWSU`EBRWIyH56Exbx33l
zUURQ3*;^v35@d3fN42WJz>wcP7I5I(1yGLl99(y-=XU1P{i{HUaB0gW>Synv6Z78I
z6(q}8_uuIep#!i5gh-pLxXuNd95z*?8bZr(W_iUH=s>KxT@;NnM-}qr=ybr-$==Jq
z#mB%vhhQ{kxd!T)2Zd>C*u@F<>d}M(#2y6q=abiD&l&*wj7$QJAI?5e%qh5}
z{UWPmE>D9Ku~@UgIyDd=Ez82it@xi86Yc&7s6+mt&@Behjt;of;p!EzG|WAF$Q-YR
zTgSSZ$4x^4cBw;FV^I_%KeCD1tZ^36c-l={YckAKTyeGdcWE^p@;_WdI|@;ysev2D
zaUlXQsdiGps)sxQPW{=Zz41lWPQ{_f{vnwH+TaF)X?;Y9>%?T~&LoC178p(VlMBu!^#<y9*q6p%%b4!}HJ7^yVRC`ht?G+|bRsrcBE7%1CIs*iOz=7-
z&x+PxC?gFNfOWtgScf$2wYW{sCN$oOA(Lt0tV*S1EmR}_)cc<4F4S^M@xoh
zE+wil*VRQi5lHS7e|l+%G_)ep*lIx2m4#pddmJVzF*?@-*m(Qjvpm}$M$#d8TB%vh
zm^yw$FcUQi4pO90iwvl1`_xtMZ;uc)y3}HejtL^)X#A*9X-RR0c^AbfUOH`wq!PhA
zs?KYP_=oKF_=sA@zc4MbCHn^@t;CXHYYz}iJOf9AEk3EbLK}qGLlrbO@!6(2BYm~i
zQ}++s!hNNH?~U}ChHX>9lpQkP09L!<)2T
zk{7RXg%!0``mJzULnvbJ4aT#$McH=@`~rLr9?>X|Y+7Dk94y`N`_la*VyuJ?|h>?=MiOYOq<;3{;>NSm!yPXDPRrYwY)tkv1pi=>Cc&||A9t+
z>EMVaGFGEuTnTf%LsZTVv-Kfl?}8}c6JDcIsUBL857VFXA%UOg!cLlg<+;(M~IeG2M
zDQD#8#D&yNky`qo7y;v&zx48PLZMUT1!SfO>8RSR%vG05Q5rDPH`jZw;~M`zwV>0*
literal 0
HcmV?d00001
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..b71a65b
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,8 @@
+[project]
+name = "vercel-fastapi-starter"
+version = "0.1.0"
+requires-python = ">=3.10"
+dependencies = [
+ "fastapi>=0.121.0",
+ "uvicorn>=0.34.0",
+]
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..97dc7cd
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+fastapi
+uvicorn