小编hen*_*dry的帖子

如何将 JSON 架构合并到我的 OpenAPI 文件中?

假设我有一个 OpenAPIswagger.yml文件,如下所示:

openapi: '3.0.2'
info:
  title: Simplest ever
  version: '1.0'
servers:
  - url: https://api.server.test/v1
paths:
  /test:
    get:
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
Run Code Online (Sandbox Code Playgroud)

我更喜欢将真实模式的来源保留在我的 schemas/ 目录中,例如schemas/get.json如下所示:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

目的是让 schemas/*.json 在我的后端代码库中使用,以验证传入和传出消息。目标是拥有强大的 API 合约。

我不明白的是如何swagger.yml使用这些 JSON 模式构建文件,而不是在 YAML 中重复工作,这确实很乏味且容易出错。

jsonschema swagger openapi

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

在静态和动态页面之间进行路由

通常我们的S3托管Web应用程序index.html如下所示:

 <div class=app></div>
Run Code Online (Sandbox Code Playgroud)

这也引用了JS捆绑和React呈现的,这很好.但该网站的一些元素是静态生成的速度和搜索引擎优化,看起来像:

 <!-- dynamically generated content -->
 <div class=app></div>
 <!-- statically generated content -->
 <h1>Title</h1>
 <p>Information, blah blah blah</p>
 <p>Lots of content</p>
Run Code Online (Sandbox Code Playgroud)

传统观点可能建议在ReactJS组件中使用静态内容然后reactDOM.renderToString(),但我不希望这样做,因为这样做是相当复杂的,因为静态组件来自许多API.

所以我很难找到我想要的文档.我希望能够对某些URL说,需要整页加载(window.location).类似地,当从具有内容的静态页面导航时,需要整页加载或者内容需要重新开始<div class=app>.

如何使用react路由器实现这一目标?

reactjs react-router

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

TypeError:未定义不是构造函数(评估 'new Intl.RelativeTimeFormat('en', { style: 'short', numeric: "auto" })')

我有这样的代码:

const rtf = new Intl.RelativeTimeFormat('en', { style: 'short', numeric: "auto" });
Run Code Online (Sandbox Code Playgroud)

在 Safari/605.1.15 中触发错误:

TypeError: undefined is not a constructor (evaluating 'new Intl.RelativeTimeFormat('en', { style: 'short', numeric: "auto" })')
Run Code Online (Sandbox Code Playgroud)

现代 JS 中如何解决 Intl API 可能不存在这一事实?

javascript

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

查找makefile依赖项

在目录布局config.xml根目录中有几个小部件.

我在这里的GNUmakefile能够构建它们.虽然如果我更新文件夹,则不会跟踪依赖项.我显然不想依赖于干净的目标,所以如何跟踪每个文件夹的内容?

WGTS := $(shell find -name 'config.xml' | while read wgtdir; do echo `dirname $$wgtdir`.wgt; done )
all: $(WGTS)
%.wgt: 
    @cd $* && zip -q -r ../$(shell basename $*).wgt .
    @echo Created $@
clean:
     rm -f $(WGTS)
Run Code Online (Sandbox Code Playgroud)

我希望这样的事情:

 %.wgt: $(shell find $* -type f)
Run Code Online (Sandbox Code Playgroud)

会工作,但事实并非如此.帮助.

makefile

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

从 Golang 调试 JSON 错误

我正在获取并解码一个包含错误的大型 JSON 响应。现在我需要找出错误在哪里!读到了有关 json.SyntaxError 的内容,但我正在努力找出如何使用它。

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
    "os"
    "text/template"
    "time"
)

type Movie struct {
    Title       string    `json:"title"`
    PublishedAt time.Time `json:"published_at"`
}

func main() {
    req, _ := http.NewRequest("GET", "https://s.natalian.org/2016-12-07/debugme2.json", nil)
    resp, err := http.DefaultClient.Do(req)

    defer resp.Body.Close()
    dec := json.NewDecoder(resp.Body)

    _, err = dec.Token()
    for dec.More() {
        var m Movie
        if err = dec.Decode(&m); err != nil {
            fmt.Println(err)
            fmt.Println("Bad", m)

            // https://blog.golang.org/error-handling-and-go
            if serr, ok := err.(*json.SyntaxError); ok {
                fmt.Println("Syntax …
Run Code Online (Sandbox Code Playgroud)

json go

7
推荐指数
2
解决办法
1万
查看次数

解组DynamoDB JSON

通过DynamoDB NewImage流事件给出一些DynamoDB JSON,如何将其解组为常规JSON

{"updated_at":{"N":"146548182"},"uuid":{"S":"foo"},"status":{"S":"new"}}
Run Code Online (Sandbox Code Playgroud)

通常我会使用AWS.DynamoDB.DocumentClient,但我似乎无法找到通用的Marshall/Unmarshall函数.

旁注:我是否会丢失任何将DynamoDB JSON为JSON并再次返回的内容?

json amazon-web-services aws-sdk-js

7
推荐指数
2
解决办法
4698
查看次数

如何过滤NULL?

"order (S)","method (NULL)","time (L)"
"/1553695740/Bar","true","[  { ""N"" : ""1556593200"" },  { ""N"" : ""1556859600"" }]"
"/1556439461/adasd","true","[  { ""N"" : ""1556593200"" },  { ""N"" : ""1556679600"" }]"
"/1556516482/Foobar","cheque","[  { ""N"" : ""1556766000"" }]"
Run Code Online (Sandbox Code Playgroud)

如何在空“方法”属性值上扫描或查询该问题?https://s.natalian.org/2019-04-29/null.mp4

amazon-web-services amazon-dynamodb

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

提前输入 VueJS 的完整经验

我希望创建一个输入字段,字段提供有关完成的建议,例如 VScode“Intellisense”(我认为)或dmenu所做的。

我一直在使用 Vue JS 和如下代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
    <label>Lookup German word:
        <input type="text" v-model.trim="word" v-on:keyup="signalChange" v-on:change="signalChange" list="words" autofocus>
    </label>
    <datalist id="words">
        <option v-for="w in words">${w}</option>
    </datalist>
    Query: ${query} Results: ${words.length} Time taken: ${fetchtime} ms
</div>

<script>
    const app = new Vue({
        el:'#app',
        delimiters: ['${', '}'],
        data() {
            return {
                listId:'words',
                word:'',
                query:'',
                words:[],
                fetchtime: 0
            }
        },
        methods: {
            async signalChange(){
                console.log(this.word)
                if (this.word.length > 2 && this.word.slice(0,3).toLowerCase() != this.query) {
                    this.query …
Run Code Online (Sandbox Code Playgroud)

html autocomplete datalist vue.js

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

在一个结构化的日志行中跟踪 Go 中的 HTTP 请求

我了解到您可以“装饰” HTTP 传输,以便您可以了解请求的详细信息,但是我无法弄清楚如何在同一行中记录 URL。

https://play.golang.org/p/g-ypQN9ceGa

结果是

  INFO[0000] Client request            dns_start_ms=0 first_byte_ms=590 response_code=200 total_ms=590 url=
  INFO[0000] 200
Run Code Online (Sandbox Code Playgroud)

如果我应该使用https://golang.org/pkg/context/#WithValue在结构中传递上下文,我永远感到困惑,尤其是在https://blog.golang.org/context-and -structs传递 context.Context 作为参数结束

logging trace http go

7
推荐指数
2
解决办法
226
查看次数

将文件读取为 JSON

我想读取几个文件(index.html、style.css、main.js)来创建用于上传的 JSON 有效负载。

我知道使用 Nodejs,我可以开始创建我想要的东西,如下所示:

var fs = require('fs');
fs.readFile('index.html', 'utf8', function (err, data) {
  if (err) throw err;
  out = JSON.stringify({"html": data});
  console.log(out);
});
Run Code Online (Sandbox Code Playgroud)

但我该如何用jq做到这一点?

json jq

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