go初识iris框架(一)

news/2024/11/28 9:22:59/

iris初始化项目

我找到的文档

mkdir myapp
cd myapp
go mod init myapp

go mod不是很清楚的可以看这篇

go get github.com/kataras/iris/v12@latest

如果出现以下问题,可以尝试go env -w GOPROXY=https://goproxy.io,direct
问题1图片

go env -w GOPROXY=https://goproxy.io,direct

在这里插入图片描述

出现上图的一些依赖和go.sum说明下载成功

创建一个对象(可以不创建)

type Anime struct{Fid int	`json:"fid"`Name string `json:"name"`
}

iris服务编写

func IrisLink(){app := iris.New()//创建iris服务app.Get("/",func(ctx iris.Context){hello := make(map[string]string,1) //maphello["message"] = "hello this is go-iris app"ctx.JSON(hello)})//使用结构体app.Get("/anime",func(ctx iris.Context){animes := []Anime{{Fid:0,Name:"刀剑神域"},{Fid:1,Name:"野良神第一季"},{Fid:2,Name:"孤独摇滚"},}ctx.JSON(animes)})//监听端口8888app.Listen(":8888")
}

动态路由

参考文档

app.Get("/test_update/{name}",func(ctx iris.Context){ctx.Writef("Hello %s", ctx.Params().Get("name"))
})

对动态路由进行约束

参考文档

app.Get("/test_update/{textId:int min(0)}",func(ctx iris.Context){textId,_ := ctx.Params().GetInt("textId")ctx.Writef("id=%d",textId)
})

id=0;
id=1;
Not Found(id=-1);

完整代码

package myIrisimport "github.com/kataras/iris/v12"type Anime struct{Fid int	`json:"fid"`Name string `json:"name"`
}func IrisLink(){app := iris.New()app.Get("/",func(ctx iris.Context){hello := make(map[string]string,50)hello["message"] = "hello this is go-iris app"ctx.JSON(hello)})app.Get("/anime",func(ctx iris.Context){animes := []Anime{{Fid:0,Name:"刀剑神域"},{Fid:1,Name:"野良神第一季"},{Fid:2,Name:"孤独摇滚"},}ctx.JSON(animes)})app.Get("/test_update/{textId:int min(0)}",func(ctx iris.Context){textId,_ := ctx.Params().GetInt("textId")ctx.Writef("id=%d",textId)})app.Listen(":8888")
}

其余(用react来连接)

#npm i axios
yarn add axios
//vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'// https://vitejs.dev/config/
export default defineConfig({plugins: [react()],server: {proxy:{'/go-api':{target: "http://127.0.0.1:8888/",changeOrigin:true,rewrite: path=> path.replace(/^\/go-api/,'')}}}
})
import { useState } from 'react'
import reactLogo from './assets/react.svg'
import viteLogo from '/vite.svg'
import './App.css'
import axios from 'axios'function App() {const [count, setCount] = useState(0)const getGoTcp01 = () =>{axios.get('/go-api/anime').then(res=>{console.log(res.data)}).catch(err=>console.log(err))}return (<div><button onClick={()=>getGoTcp01()}>点击请求</button></div>)
}export default App

http://www.ppmy.cn/news/455072.html

相关文章

flutter学习之旅 - Wrap组件

文章目录 Wrap组件使用Wrap组件实现电商App搜索页面布局 Wrap组件 Wrap可以实现流布局&#xff0c;单行的Wrap跟Row表现几乎一致&#xff0c;单列的Wrap跟Column都是单行单列的; Wrap则突破了这个限制,mainAxis上的空间不足时&#xff0c;则向crossAxis上去扩展 属性说明direct…

重要网址记录

http://www.knowsky.com/tools/ad/ http://sarin.iteye.com/blog/1561894 android开发笔记 http://www.xwcms.net/ 素材网 http://www.imanhua.com/comic/3352/list_83384.html?p5 动漫网址(野良神) http://www.miniui.com/download/ miniUI 转载于:https://www.cnblogs.co…

【爬虫之路】批量下载5sing上一位歌手的全部歌曲

*16-3-27更新&#xff0c;原方法已失效&#xff0c;仅供参考 实现思路是这样的&#xff1a; 1.访问songer的所有作品列表页&#xff0c;例如&#xff1a; http://5sing.kugou.com/marblue/fc/1.html 显示的是songer的翻唱作品第一页&#xff0c;修改链接访问所有作品列表页…

selenium 调用本地浏览器插件

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!selenium 使用本地浏览器插件 环境 win10Python3.9selenium 4.10查看chrome配置文件路径 地址栏输入 ​​…

Misc(6)

隐藏的钥匙 还是一样挨个试&#xff0c;详细信息里没有发现flag信息&#xff0c;就用010打开试试 文件头正常&#xff0c;暂时没有发现隐藏文件 喝&#xff0c;多搜搜还是有收获的&#xff0c;一开始以为是有隐藏文件就利用ctrlf在010中进行搜索 分别搜索了txt和rar文件都没有反…

apk反编译工具APK改之理少月版

http://www.downxia.com/downinfo/263443.html

apk改之理 转java_冷宫:Apk改之理下载地址及说说其它

Apk改之理(ApkIDE)下载地址&#xff1a;点击这里(还是旧版本哦&#xff01;)&#xff0c;apkide短期内或长期内或永久不会更新(现在不搞安卓所以没动力更了)&#xff0c;后续会做基于outliner大纲的知识管理软件和基于markdown的知识管理软件&#xff0c;写这些软件主要是俺自己…

apk改之理安装教程

一、下载jdk ORACLE官网下载 1.6版本以上 https://www.oracle.com/java/technologies/javase-downloads.html 二、配置步骤 Android SDK可以先暂时不配置 总结 多学多刷多练