202011-13 Django restful framework生成API文档过程详解 自动生成api文档(不管是函数视图还是类视图都能显示)1.安装rest_framework_swagger库pipinstalldjango-rest-swagger2.在项目下的urls.py中加入如下:fromrest_framework_swagger.viewsimportget_swagger_viewschema_view=get_swagger_view(title='API文档')urlpatterns+=[path(r'docs/',schema_view),]3.在创建的django项目下的settings中加入如下:INSTALLED_APPS=['rest_framework_swagger']REST_FRAMEWORK=... 继续阅读 >
202011-06 详解ASP.NET Core Web Api之JWT刷新Token 前言如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋会将JWT过期时间设置成很长,有的几个小时,有的一天,有的甚至一个月,这么做当然存在问题,如果被恶意获得访问令牌,那么可在整个生命周期中使用访问令牌,也就是说存在冒充用户身份,此时身份认证服务器当然也就是始终信任该... 继续阅读 >
202010-28 详解vue3.0 的 Composition API 的一种使用方法 网上讨论的文章已经很多了,这里举一个简单的例子来讨论一下CompositionAPI的用法,具体问题才好具体讨论嘛。假如我们要做一个论坛的讨论列表和分页,以前是把需要的数据都放在data里面,事件都放在methods里面,代码少的话还好分辨,如果代码多了,看着就头疼了。现在vue3.0可以按照业务关系分成多个管理类来管理这些代码。比如帖子列表+发帖功能,我们先做一个模板:(简单表示一下,不做美化处理了)<template><div>论坛... 继续阅读 >
202010-28 vue3.0 的 Composition API 的使用示例 网上讨论的文章已经很多了,这里举一个简单的例子来讨论一下CompositionAPI的用法,具体问题才好具体讨论嘛。假如我们要做一个论坛的讨论列表和分页,以前是把需要的数据都放在data里面,事件都放在methods里面,代码少的话还好分辨,如果代码多了,看着就头疼了。现在vue3.0可以按照业务关系分成多个管理类来管理这些代码。比如帖子列表+发帖功能,我们先做一个模板:(简单表示一下,不做美化处理了)<template><div>论坛... 继续阅读 >
202010-13 Django限制API访问频率常用方法解析 需求描述:平台中需要编写接口供第三方调用,需要控制调用频率,需求为5s内调用一次后不得再次调用。解决思路1.Django官方插件库中有个django-ratelimit插件可以满足要求,django-ratelimit文档地址,很灵活很强大。只需要在我们的views函数上加上@ratelimit(key='ip',rate='1/30s',block=True)装饰器就可以了,网站上的资料不多,大部分都是英文的。在这里稍微解释下参数:key='ip',必填项,标识按照IP划分,我理解的是同一IP... 继续阅读 >
202010-10 理解JavaScript中的Proxy 与 Reflection API 一、创建Proxylettarget={}letproxy=newProxy(target,{})proxy.name="proxy"console.log(proxy.name)//proxyconsole.log(target.name)//proxytarget.name="target"console.log(proxy.name)//targetconsole.log(target.name)//target在上面的例子中,由Proxy构造器创建的proxy对象会将自身的所有操作直接转发给target。当proxy.name被赋值为"proxy"时,target对象也会创建name属性并获得同样的... 继续阅读 >
202010-10 Java Validation Api如何实现自定义注解 背景官方提供的注解多数可以解决现实业务场景中基本业务校验,但有些特殊场景因业务的复杂性,也还是需要在入口处对入参进行各种角度的校验,以求简化业务层的处理,降低业务处理复杂性与方法入口的强约束性。以上背景,下面就举个简单Demo进行自定义注解校验的实现。注解定义类importjavax.validation.Constraint;importjavax.validation.Payload;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retent... 继续阅读 >
202010-10 Java Validation Api实现原理解析 前言:涉及知识点:AOP、拦截器相关功能主要实现类:因为beanvalidation只提供了接口并未实现,使用时需要加上一个provider的包,例如hibernate-validator范围:注解:@Valid@RequestBudy主要实现类:RequestResponseBodyMethodProcessor处理器:HandlerMethodArgumentResolver注解说明:@Valid:标准JSR-303规范的标记型注解,用来标记验证属性和方法返回值,进行级联和递归校验,@Valid可用于方法、... 继续阅读 >
202010-10 Java Validation Api使用方法实例解析 在我们应用程序的业务逻辑中,经常会碰到参数校验的情况,手动的在代码层上面进行校验就会带来很不好的体验,阅读、维护的成本会大大增加,造成冗余。因此有了这个JSR303。BeanValidation为JavaBean提供了相应的API来给我们做参数的验证。通过BeanValidation比如@NotNull@Pattern等方法来对我们字段的值做进一步的教研。BeanValidation是一个运行时框架,在验证之后错误信息会直接返回。依赖:<!--添加依赖--><de... 继续阅读 >
202010-10 Vue 使用typescript如何优雅的调用swagger API Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,后端集成下Swagger,然后就可以提供一个在线文档地址给前端同学。前端如何优雅的调用呢?入门版根据文档,用axios自动来调用//应用管理相关接口importaxiosfrom'../interceptors.js'//获取应用列表exportconstgetList=(data)=>{returnaxios({url:'/app/list?sort=createdDate,desc',method:'get',params:data})}... 继续阅读 >
202010-10 浅析 Vue 3.0 的组装式 API(一) (一)响应式数据1.简单例子从最简单的数据绑定开始,在Vue2.0中,我们这样将一个数据绑定到模板的指定位置:在组件创建参数的data构造函数中返回一个用来绑定的数据对象,其中有个now字段,会被渲染到模板内的.app>p内。<template><divclass="app"><h1>Helloworld!</h1><p>Nowis:{{now.toString()}}</p></div></template><script>//Vue2.0exportdefault{data(){return{now:newDa... 继续阅读 >
202010-09 Django rest framework使用类视图实现首页API django-rest-framework类视图拓展自django的类视图,只是针对数据的序列化和反序列化等逻辑做了封装。django-rest-framework中最基本的类视图是views.APIView,这个类可以看成是上一篇教程中用到的api_view装饰器的类版本。这个类比较基础,其核心功能就是HTTP请求预处理、分发请求给对应的处理函数,以及HTTP响应后处理,还有就是as_view方法将类转为函数(要注意与被请求的URL绑定的视图必须是一个可调用对象,普... 继续阅读 >
202010-09 DRF框架API版本管理实现方法解析 API不可能一成不变,无论是新增或者删除已有API,都会对调用它的客户端产生影响。如果对API的增删没有管理,随着API的增增减减,调用它的客户端就会逐渐陷入迷茫,到底哪个API是可用的?为什么之前可用的API又不可用了,新增了哪些API可以使用?为了方便API的管理,我们引入版本功能。给API打上版本号,在某个特定版本下,原来已有的API总是可用的。如果要对API做重大变更,可以发布一个新版本的API,并及时... 继续阅读 >
202010-09 ASP .NET Core API发布与部署以及遇到的坑和解决方法 最近在写.NetCore的API,由于之前没接触过Core,所以自己的想法很简单,感觉和.Net都是差不多的东西,发布部署还是按.Net的那一套来,可谓是困难重重,走了不少弯路。 也没什么漂亮的词语,也不是技术大牛,就是抱着学习技术的态度,随手写写这一套流程,以及遇到的问题跟解决方法。一、安装服务器环境 &nb... 继续阅读 >
202010-09 在IIS上部署ASP.NET Core Web API的方法步骤 对于本文,我想与您分享有关如何在IIS上部署ASP.NETCoreWebAPI的指南。我将指导您安装VisualStudio2019,.NETCoreRuntime3.0。我还确保我逐步引导您在服务器(WebIIS)中启用它,使用no受管代码选项创建新的应用程序池,创建ASP.NETCoreWebAPI项目以及发布ASP.NETCoreWebAPI。了解并遵循正确的步骤来准备开发和部署环境后,在IIS上部署ASP.NETCoreWebAPI就是一件容易的事。几天前,Microsoft的VisualStudio团队... 继续阅读 >
202010-09 使用java API实现zip递归压缩和解压文件夹 一、概述在本篇文章中,给大家介绍一下如何将文件进行zip压缩以及如何对zip包解压。所有这些都是使用Java提供的核心库java.util.zip来实现的。二、压缩文件首先我们来学习一个简单的例子-压缩单个文件。将一个名为test1.txt的文件压缩到一个名为Compressed.zip的zip文件中。publicclassZipFile{publicstaticvoidmain(String[]args)throwsIOException{//输出压缩包FileOutputStreamfos=newFileOutputStream("s... 继续阅读 >