首页 > 其他分享 >使用 Go 构建一个最小的 API 应用

使用 Go 构建一个最小的 API 应用

时间:2024-10-17 21:01:52浏览次数:6  
标签:http err todoitems item API 构建 Go todo id

最近有项目要使用 Go 开发,作为一个. NET Core 选手,准备先撸一个包含 CRUD 的最小 MVP 项目练手。

要创建一个 TODO 应用,会创建下面这些接口:

API Description Request body Response body
GET /todoitems Get all to-do items None Array of to-do items
GET /todoitems/complete Get completed to-do items None Array of to-do items
GET /todoitems/{id} Get an item by ID None To-do item
POST /todoitems Add a new item To-do item To-do item
PUT /todoitems/{id} Update an existing item To-do item None
DELETE /todoitems/{id} Delete an item None None

我觉得,做这样一个 API 应用,不管是 Go 还是其他语言,思路是一样的,无外乎:SDK 版本、开发工具、服务容器、HTTP 请求和响应处理、数据库对应的语言驱动、实体定义和映射、JSON 处理等等。因此,其他语言怎么做,换成 Go 之后,找对应的工具和实现方案就可以了。

1 、快速搭建开发环境

2、构建 API

2 .1、创建目录,初始化项目

go mod init todo-list-api

安装依赖包:

相关文章

  • 【Golang】踩坑记录:make()创建引用类型,初始值是不是nil!!
    文章目录起因二、得记住的知识点1.make()切片,初始化了吗?2.make()切片不同长度容量,append时的差别3.切片是指向数组的指针吗?4.切片扩容时,重新分配内存,原切片的数据怎么办?三、咳咳,总结一下起因序列化的时候居然给我空指针报错,哪nil啦???猛一顿查,查到了创建的结构体......
  • Flask连接前端和智谱清言API
    python代码:fromzhipuaiimportZhipuAIfromflask_corsimportCORSfromflaskimportFlask,request,jsonifyimportjsonapp=Flask(__name__)CORS(app)@app.route("/")defindex():return"WelcometomyFlaskapp!"@app.route(&......
  • 【FastAPI】异步+网络请求
    前言:当我们碰到IO阻塞的时,使用fastapi异步框架,需要配合异步模块使用1.网络请求,httpximporthttpximportuvicornfromfastapiimportFastAPIfromfastapi.requestsimportRequestapp=FastAPI()@app.get("/api")asyncdefapi(request:Request):data_dict=......
  • 【FastAPI】jinja2模板
    本文介绍简单的jinja2语法APIimportuvicornfromfastapiimportFastAPIfromfastapi.requestsimportRequestfromfastapi.templatingimportJinja2Templatesfromfastapi.staticfilesimportStaticFilesapp=FastAPI()#项目根目录下创建static与templates文件......
  • EF4323 Algorithmic Trading
    EF4323AlgorithmicTradingProjectSemesterA2024/2025Instructor:Dr.DU,JintaoIntroductionInthisproject,wesimulatethealgorithmictradingbusinessmodel,whereasmallgroupofproprietarytraderstriestoattractoutsideinstitutionalinvest......
  • mongodb 常用查询API
    mongodb常用查询API:db.book.find(0.count()db.book.find({},{bookid,name,status})//selectbookid,name,statusfrombookdb.book.find({age:{$gt:30}})db.book.find({age:{$gte:30}})db.book.find({age:{$lt:30}})db.book.find({age:{$gt:30,$lt:50}})db.book.find({$......
  • Mongodb 性能监控工具FreeMonitoring,mongostat,mongotop,Profiler,索引,分片,事务超时,Mongo
    db.users.createIndex({username:'hashed'})1#创建唯一索引db.values.createIndex({title:1},{unique:true})2#复合索引支持唯一性约束db.values.createIndex({title:1,type:1},{unique:true})3#多键索引支持唯一性约束db.inventory.createIndex({ratings:1},{uni......
  • 淘宝 API 接口的调用频率限制是否会因应用类型而异?
    淘宝API接口的调用频率限制会因应用类型而异。以下是一些常见的应用类型及其可能的调用频率限制差异:电商管理类应用:商家后台管理系统:这类应用对于商家来说至关重要,用于管理店铺的商品、订单、库存等信息。由于涉及到商家的日常运营操作,淘宝可能会给予相对较高的调用频......
  • ArgoCD +‘ArgoCD Image Updater小工具’ 实现镜像仓库tag变更自动触发持续集成
    部署思路踩坑整理ArgoCD和ArgoCDImageUpdater是2个不同的程序。“ArgoCDImageUpdater小工具”没有集成在ArgoCD中需要单独部署。单独的ArgoCD能够实现基于git仓库变更作为应用部署的事实来源。参考子页:argocd根据镜像tag变化实现自动发布的2种方式。ArgoCD+“ArgoCDIma......
  • 全网热点信息监控舆情监控,一个docker一行命令启动完成部署,汇聚全网27个主流网站实时热
    全网热点信息监控舆情监控,一个docker一行命令启动完成部署,汇聚全网27个主流网站实时热榜,热点一“手”掌握,今日热榜API,一个聚合热门数据的API接口,支持RSS模式及Vercel部署。今日热榜汇聚全网热点,热门尽览无余,今日热榜可以为用户提供最新、最热门的信息,尽览各大平......