eolink官网
  • 首页
  • api管理
  • API接口管理
  • API自动化测试
  • api文档
  • API网关
  • 接口自动化
  • 实现接口
  • 关键词
首页 包含"模板 第24页"标签的文章
  • 软件接口设计怎么做?前后端分离软件接口设计思路

    [置顶]软件接口设计怎么做?前后端分离软件接口设计思路

    API接口管理 •2022-09-21

    本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...

    接口设计 软件接口设计 接口管理
  • 接口管理如何做?接口实现版本管理的意义和最佳方法

    [置顶]接口管理如何做?接口实现版本管理的意义和最佳方法

    API接口管理 •2022-10-27

    本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...

    接口管理 api eolink eolinker
  • 实现API管理系统的关键

    [置顶]实现API管理系统的关键

    API接口管理 •2023-06-16

    下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...

    API API管理 API管理系统 实现API管理系统 实现API管理系统的关键 api管理工具
  • {{list.f_name}}

    {{list.f_name}}

    删除

    my_server.js

    //初始化查询商品列表

    app.get('/',function(req,res){

    var selectSQL = 'select * from t_list limit 4';

    conn.query(selectSQL, function (err2, rows) {

    if (err2) console.log(err2);

    var seach_result = JSON.stringify(rows);

    res.render('index',{//pug(jade)是express默认模板

    init_data:seach_result,

    });

    });

    });

    初始化查询购物车列表

    这里逻辑是根据用户id查出商品id,再根据商品id查出商品信息添加到页面上

    用promise写异步逻辑

    app.post('/search_cart', function (req, res) {

    return new Promise(function(resolve){

    let return_data = {

    req :req

    };

    resolve(return_data);

    })

    .then(function(return_data){

    let user_id=return_data.req.body.user_id;

    let query = 'SELECT * FROM t_item_user WHERE f_uid = ?';

    let query_param = user_id;

    return new Promise(function(resolve){

    conn.query(query,query_param, function (err2, rows) {

    resolve(rows);

    });

    });

    }).then(function(rows){

    if(rows.length>0){

    let query_item = 'SELECT * FROM t_list WHERE f_id in (?)';

    let whereIn = [];

    for(let i=0,len=rows.length;i

    whereIn.push(rows[i].f_item_id);

    }

    conn.query(query_item,[whereIn], function (err2, rowss) {//异步分两次查。。。。

    if (err2){

    console.log(err2);

    }

    let $return={

    errcode:0,

    errmsg:'',

    data:rowss,

    };

    res.end(JSON.stringify($return));//返回

    });

    }else if(rows.length==0){

    let $return={

    errcode:0,

    errmsg:'',

    data:''

    };

    res.end(JSON.stringify($return));//返回

    }

    });

    });

    3.加入购物车

    list.vue页面的请求

    add_to_cart:function (e) {

    let item_id = parseInt(e.currentTarget.getAttribute('data-id'));//vue获取当前dom对象

    let data = {id:2333,item_id:item_id};

    $.ajax({

    type: "post",

    url: "/add_to_cart",

    dataType: "json" alt="用vue和node写的简易购物车实现" title="用vue和node写的简易购物车实现" width="200" height="150">

    用vue和node写的简易购物车实现

    API接口管理 •2023-05-20

    用vue和node写的简易购物车实现项目介绍这是用vue写前端,用node来接收前端发来的请求,然后进行相应的数据操作,例如数据的存取和删除等。这是个人的练习项目,目前功能做的比较简单,主要是展示商品...

    对象 模板 配置 操作 项目
  • 详谈Angular 2+ 的表单(一)之模板驱动型表单

    详谈Angular 2+ 的表单(一)之模板驱动型表单

    API接口管理 •2023-05-20

    详谈Angular 2+ 的表单(一)之模板驱动型表单摘要在企业应用开发时,表单是一个躲不过去的事情,和面向消费者的应用不同,企业领域的开发中,表单的使用量是惊人的。这些表单的处理其实是一个挺复杂的事...

    模板 设置 参数 框架 方法
  • 微信小程序实现给循环列表添加点击样式实例

    微信小程序实现给循环列表添加点击样式实例

    API接口管理 •2023-05-20

    微信小程序实现给循环列表添加点击样式实例微信小程序实现给循环列表添加点击样式实例微信小程序有个属性hover-class='active',是指当点击列表元素时当按下鼠标左键会显示active样式,但...

    文件 http 模板 设置 属性
  • Vue自定义图片懒加载指令v

    Vue自定义图片懒加载指令v

    API接口管理 •2023-05-20

    Vue自定义图片懒加载指令vvue是可以自定义指令的,最近学习过程中遇见了一个需要图片懒加载的功能,最后参考了别人的代码和思路自己重新写了一遍。以下将详细介绍如何实现自定义指令v-lazyload。先...

    加载 自定义 http 模板 函数
  • 气温变化对比图

    我的图片

    2、获取模板内容并填充数据

    /**

    * @description 获取模板

    */

    public static String getContent(String fileName,Object data){

    String templatePath=getPDFTemplatePath(fileName);//根据PDF名称查找对应的模板名称

    String templateFileName=getTemplateName(templatePath);

    String templateFilePath=getTemplatePath(templatePath);

    if(StringUtils.isEmpty(templatePath)){

    throw new FreeMarkerException("templatePath can not be empty!");

    }

    try{

    Configuration config = new Configuration(Configuration.VERSION_2_3_25);//FreeMarker配置

    config.setDefaultEncoding("UTF-8");

    config.setDirectoryForTemplateLoading(new File(templateFilePath));//注意这里是模板所在文件夹,不是文件

    config.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

    config.setLogTemplateExceptions(false);

    Template template = config.getTemplate(templateFileName);//根据模板名称 获取对应模板

    StringWriter writer = new StringWriter();

    template.process(data, writer);//模板和数据的匹配

    writer.flush();

    String html = writer.toString();

    return html;

    }catch (Exception ex){

    throw new FreeMarkerException("FreeMarkerUtil process fail",ex);

    }

    }

    3、导出模板到PDF文件

    /**

    * @description 导出pdf到文件

    * @param fileName 输出PDF文件名

    * @param data 模板所需要的数据

    *

    */

    public String exportToFile(String fileName,Object data){

    String htmlData= FreeMarkerUtil.getContent(fileName, data);//获取FreeMarker的模板数据

    if(StringUtils.isEmpty(saveFilePath)){

    saveFilePath=getDefaultSavePath(fileName);//设置PDF文件输出路径

    }

    File file=new File(saveFilePath);

    if(!file.getParentFile().exists()){

    file.getParentFile().mkdirs();

    }

    FileOutputStream outputStream=null;

    try{

    //设置输出路径

    outputStream=new FileOutputStream(saveFilePath);

    //设置文档大小

    Document document = new Document(PageSize.A4);//IText新建PDF文档

    PdfWriter writer = PdfWriter.getInstance(document, outputStream);//设置文档和输出流的关系

    //设置页眉页脚

    PDFBuilder builder = new PDFBuilder(headerFooterBuilder,data);

    builder.setPresentFontSize(10);

    writer.setPageEvent(builder);

    //输出为PDF文件

    convertToPDF(writer,document,htmlData);

    }catch(Exception ex){

    throw new PDFException("PDF export to File fail",ex);

    }finally{

    IOUtils.closeQuietly(outputStream);

    }

    return saveFilePath;

    }

    4、测试工具类

    public String createPDF(Object data, String fileName){

    //pdf保存路径

    try {

    //设置自定义PDF页眉页脚工具类

    PDFHeaderFooter headerFooter=new PDFHeaderFooter();

    PDFKit kit=new PDFKit();

    kit.setHeaderFooterBuilder(headerFooter);

    //设置输出路径

    kit.setSaveFilePath("/Users/fgm/Desktop/pdf/hello.pdf”);//设置出书路径

    String saveFilePath=kit.exportToFile(fileName,data);

    return saveFilePath;

    } catch (Exception e) {

    log.error("PDF生成失败{}", ExceptionUtils.getFullStackTrace(e));

    return null;

    }

    }

    public static void main(String[] args) {

    ReportKit360 kit=new ReportKit360();

    TemplateBO templateBO=new TemplateBO();//配置模板数据

    templateBO.setTemplateName("Hello iText! Hello freemarker! Hello jFreeChart!");

    templateBO.setFreeMarkerUrl("http://zheng-hang.com/chm/freemarker2_3_24/ref_directive_if.html");

    templateBO.setITEXTUrl("http://developers.itextpdf.com/examples-itext5");

    templateBO.setJFreeChartUrl("http://yiibai.com/jfreechart/jfreechart_referenced_apis.html");

    templateBO.setImageUrl("https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png" alt="java根据模板动态生成PDF实例" title="java根据模板动态生成PDF实例" width="200" height="150">

    java根据模板动态生成PDF实例

    API接口管理 •2023-05-20

    java根据模板动态生成PDF实例一、需求说明:根据业务需要,需要在服务器端生成可动态配置的PDF文档,方便数据可视化查看。二、解决方案:iText+FreeMarker+JFreeChart生成可动...

    模板 配置 代码 文档 组件
  • Spring Boot实现邮件注册功能示例代码

    Spring Boot实现邮件注册功能示例代码

    API接口管理 •2023-05-19

    Spring Boot实现邮件注册功能示例代码注册流程1.[前端] 用户在注册页面提交注册信息;2.[后端] 校验用户提交的参数,有误直接返回错误信息,无误向下执行;3.[后端] 随机生成一个ID,将...

    代码 系统 模板 password http
  • GOKU API Gateway V2.0.0发布:新增服务编排,强化监控、告警

    GOKU API Gateway V2.0.0发布:新增服务编排,强化监控、告警

    API接口管理 •2023-05-19

    EOLINKER  API Gateway 已于近期发布2.0.0版本,该版本支持服务编排(链式调用),API间能够进行参数传递,能够对返回数据做过滤、整合等操...

    监控 变量 控制 模板 文件
  • Eolinker API Studio 6.1 & API Beacon 3.0 版本更新:强化 API 自动化测试,优化 API 监控体验

    Eolinker API Studio 6.1 & API Beacon 3.0 版本更新:强化 API 自动化测试,优化 API 监控体验

    API接口管理 •2023-05-19

    EOLINKER  API Studio 和 API Monitor 已于近期发布 6.1 和 3.0 版本:...

    自动 监控 引用 模板 基础