小编Joh*_*n P的帖子

如何将swagger 2.0 JSON文件分解为多个模块

我正在尝试将我的API文档分解为多个可以独立编辑的JSON文件.我能够找到的所有示例都使用Swagger 1.2模式,该模式具有"api":{}对象以便将其分解.这似乎在2.0模式(http://json.schemastore.org/swagger-2.0)中缺失.所有定义的都是单个"路径"数组,它将所有API端点捆绑到该单个数组中.这在swagger-ui中的效果是有一个单独的"默认"类别,所有内容都被捆绑在一起,我无法分辨它.

TLDR:如何从swagger 2.0模式中的路径中拆分操作

{
  "swagger": "2.0",
  "info": {
    "description": "My API",
    "version": "1.0.0",
    "title": "My API",
    "termsOfService": "http://www.domain.com",
    "contact": {
      "name": "support@domain.com"
    }
  },
  "basePath": "/",
  "schemes": [
    "http"
  ],
  "paths": {
    "Authorization/LoginAPI": {
      "post": {
        "summary": "Authenticates you to the system and produces a session token that will be used for future calls",
        "description": "",
        "operationId": "LoginAPI",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [{
          "in": "formData",
          "name": "UserName",
          "description": "Login Username",
          "required": true, …
Run Code Online (Sandbox Code Playgroud)

swagger swagger-ui swagger-2.0

35
推荐指数
2
解决办法
3万
查看次数

ImageMagick在不缩放图像的情况下更改宽高比

我有大量的图像,可以是任何尺寸,我需要在相同的宽高比(基本上是正方形).因此,如果一个图像是100x300,则输出应为300x300.我不想要的是以任何方式缩放或拉伸的图像.我只想要一个背景颜色(白色)应用于图像的两侧,然后原始图像居中(垂直或水平取决于原始的宽高比).

我玩了几个不同的转换命令,但我还没有找到魔术 - 它们都会扭曲图像以达到纵横比,或者将图像缩放到正确的更大尺寸,但是没有方面比率我一直在寻找.

提前致谢

resize imagemagick aspect-ratio

8
推荐指数
1
解决办法
6550
查看次数

使用多个参数播放框架路由

我正试图在Play中设置SEO友好路线!具有多个参数的框架(第二个参数是可选的).我的目标是:

http://domain.com/article/jsmith/name-of-article

但是Play正在产生的是:

http://domain.com/article/jsmith?articleSlug=name-of-article

在我看来: @{Article.show("jsmith","name-of-article")}

我的控制器
public static void show(String username,String articleSlug){ ... }

我的路线文件

GET /article/{username}                  Article.show
GET /article/{username}/{articleSlug}    Article.show

playframework

5
推荐指数
1
解决办法
5425
查看次数

左外连接 Postgres 中深两层的结果是笛卡尔积

给定以下 4 个表:

CREATE TABLE events ( id, name )
CREATE TABLE profiles ( id, event_id )
CREATE TABLE donations ( amount, profile_id )
CREATE TABLE event_members( id, event_id, user_id )
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取所有事件的列表,以及任何成员的计数以及任何捐赠的总和。问题是捐赠的总和是错误的(似乎是捐赠的笛卡尔结果 * # of event_members)。

这是 SQL 查询 (Postgres)

SELECT events.name, COUNT(DISTINCT event_members.id), SUM(donations.amount)
FROM            events
LEFT OUTER JOIN profiles      ON events.id = profiles.event_id
LEFT OUTER JOIN donations     ON donations.profile_id = profiles.id
LEFT OUTER JOIN event_members ON event_members.event_id = events.id
GROUP BY events.name
Run Code Online (Sandbox Code Playgroud)

sum(donations.amount) 返回 = 实际捐款总额 * event_members …

sql postgresql aggregate-functions left-join

5
推荐指数
2
解决办法
3424
查看次数

VueJS将计算值视为原始HTML,而无需div包装器

在Vue2中,您可以通过将值包装在

<div v-html="computedValue"/>
Run Code Online (Sandbox Code Playgroud)

但是,无论是否需要,都会在每个元素周围添加一个额外的<div>标签。我想做的是选择性地将值视为原始HTML,如果它是非HTML文本,则不需要额外的div标签。

我现在想到的唯一方法是添加两个额外的计算属性,并多次计算该值:

<div v-if="containsHtml" v-html="computedValue"/>{{nonHtmlValue}}
Run Code Online (Sandbox Code Playgroud)

组件

Vue.component("datatable-cell", {
    template: `
        <td>{{computedValue}}</td>
        <!-- above is ideal  I'm trying to avoid 
        <td><div v-if="containsHtml" v-html="computedValue"/>{{nonHtmlValue}}</td>
         -->
    `,
    props: ["row","column"],
    computed: {
        containsHtml: function(){
            return this.computedValue != null && this.computedValue.charAt[0] == "<";
        },
        nonHtmlValue: function(){
           if(this.containsHtml) return "";
           return this.computedValue;
        },
        computedValue: function(){
            if(this.column.template){
                var templateValue = this.column.template(this.row);
                if(isSafeMarkup(templateValue)){
                    //Treat as HTML - how????
                    return templateValue;
                }else{
                    //Escape and treat as text.  This already works
                    return templateValue;
                }
            }else{
                return this.row[column.name]; …
Run Code Online (Sandbox Code Playgroud)

vuejs2

5
推荐指数
0
解决办法
296
查看次数

访问 React Router 历史堆栈

我有一个应用程序,您可以通过各种方式(搜索、按类别向下钻取等)访问相册列表。从相册中,您单击打开单张照片并使用左/右箭头以及各种编辑工具遍历它们。每个迭代/工具操作都会执行 history.push() 以将路由添加到路由器历史记录中。我正在尝试实现一个按钮,在您开始查看单张照片之前,该按钮将返回到历史记录中的确切位置。为此,我想将历史堆栈向后移动到历史与多个模式中的 1 个匹配的点,然后执行 history.go(-14)(或其他)以跳回开始整个过程​​的路线链。

我一直在搜索 React 路由器代码以及 HTML5 History 对象,但没有看到任何直接访问历史堆栈的方法,因此我可以将其返回。我宁愿不依赖于让每个单独的照片动作将它们的路径推到一个单独的地方,因为这使它变得脆弱(每个照片动作都是由不同的开发人员构建的,并且将来添加新动作将需要以前的知识来记住这样做)。

我无法进入硬编码路径,因为它会被推到历史堆栈的顶部,而点击后退箭头只会将您返回到最后一个单独的照片页面,而不是首先生成相册列表的搜索页面.

关于访问历史堆栈的任何建议?

html browser-history html5-history reactjs react-router

5
推荐指数
1
解决办法
7453
查看次数

设置linux权限允许写入现有文件,但不能创建新文件

是否存在允许编辑现有文件但不创建新文件或目录的递归chmod命令?我有一个托管用户,他的网站一直被黑客攻击以托管网络钓鱼网站.当他努力关闭他的代码中的漏洞时,我想chmod他的整个主目录,因此不能创建新文件,但他仍然可以更新现有代码来修复漏洞.

linux file-permissions chmod

3
推荐指数
1
解决办法
2020
查看次数

.NET Core Entity Framework 在作为实体访问时抛出无效的对象名称,但适用于 SQL

我正在使用 Entity Framework Core v6.2。我收到一个错误

SqlException: 无效的对象名称“Cdef.CellDefinition”

当我尝试DbSet直接访问,但使用相同的DbContext对象时,我可以使用FromSql命令直接查询对象。

我见过其他的答案说,修改公约来去除PluralizingTableNameConvention,但是因为我在做EntityFrameworkCore.DbContext的是ModelBuilder没有这样的选择,我没有看到任何证据表明它是试图访问一个多元化的名字。

我的实体设置如下:

[Table("Cdef.CellDefinition")]
public partial class CellDefinition
{
    [Key]
    public int Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

而我DbContext的就像:

public class CDefContext : Microsoft.EntityFrameworkCore.DbContext
{
    public virtual Microsoft.EntityFrameworkCore.DbSet<CellDefinition> CellDefinition { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试直接将对象作为实体访问时,出现错误:

无效的对象名称

但是如果我使用相同的对象名称发出 SQL,它就可以正常工作。

// This fails with Invalid Object Name
return cDefContext.CellDefinition.ToList();

// This succeeds
return …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework entity-framework-core

3
推荐指数
1
解决办法
2388
查看次数

PlayFramework HTTPS路由仅在prod模式下,HTTP在dev模式下

我希望某些路由在生产模式下始终为HTTPS,但在开发模式下为HTTP.现在,我知道创建https路由的唯一方法是使用: @@{Controller.action().secure()},但是硬编码它们是https.

这在路由或application.conf设置中是否可行?

playframework

1
推荐指数
1
解决办法
929
查看次数