iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0

正文

弄完資料庫後,花了一點時間的寫了這幾隻API。

主要的routing分成

  • API/[Controller]/[Action]
    • GetList 回傳貼文清單
    • GetDetail 回傳單比貼文含詳細內容
  • Internal/[Controller]/[Action]
    • AddUser 新增作者
    • GetUser 給我查作者用的(UserID)
    • AddPost 新增貼文

前者預計給之後的頁面使用,後者是我自己在家呼叫用的。

程式碼大致上長這樣

Swagger的畫面(OAS3)

再來先把這個API Containerize,dockerfile 如下:

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /source
COPY . .
RUN dotnet publish -c release -o /app 

FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build /app ./
USER 1001
ENV TZ=Asia/Taipei
ENV ASPNETCORE_URLS=http://+:7777
ENTRYPOINT ["dotnet", "homelabAPI.dll"]

這邊也是走rootless的方式,並且修改bind的port為7777(預設會是80),以前有遇過unix system要bind 0-1024 的 port需要root的身份的問題,所以這邊刻意修改port。
然後原本想說要bind 6666 port,試了一下怪怪的Curl能通,Chrome卻不通,於是乎又google了一下才知道Chrome竟然有限制這些port,又學了一課~

docker build -t homelab:dev .
docker save homelab:dev > homelab.tar

## nas上,之後會弄成Auto Build這邊先讓我手動搬過去執行~
docker load < homlab.tar
docker run -itd --env ASPNETCORE_ENVIRONMENT=Development -p 7777:7777 homelab:dev

就先這樣把我這個API佈署在我的小NAS上面。

閒聊

先說明一下,這邊純粹是個人興趣亂開發。如果各位真的有Blog/筆記需求的話,不妨去用像hackmd、ithome、點部落或Medium之類的線上平台,如果真的想要試試自己hosting與maintain的話,也可以使用像是hexohugo這類的工具很簡單的就可以幫助你佈署在github page上,相關的教學可以在網路上google一下應該不難查到。不要像我一樣蝦逼逼在這邊亂搞XD


上一篇
Day03,Model摸象
下一篇
Day05,滑水的一天
系列文
HomeLab 30天,胡搞瞎搞亂弄一通。30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言