小编Boa*_*oaz的帖子

REST - 支持多个可能的标识符

对于我正在处理的网站,我们正在改进一种资源的网址 - 特别是从数字ID转向唯一的描述性字符串.类似的例子是从通过数字数据库ID识别用户切换到通过用户名识别它们(不是我们的具体情况,而是类似的).因此,访问用户信息的URL看起来像:

/users/48573
Run Code Online (Sandbox Code Playgroud)

现在它看起来像

/users/thisisausername.
Run Code Online (Sandbox Code Playgroud)

对于API的传统消费者来说,唯一的问题是我们仍然需要能够以某种方式通过数字ID获取它们.我们不需要REST URL本身来重定向(例如,/users/48573不应该重定向到/users/thisisausername),我们只需要一种方法来使用旧标识符获取正确的数据.该解决方案应该提供另一种方式来访问用户信息(方便地包括新标识符,用户名),或者通过ID访问用户名.一些可能的解决方案可能是

  • 使用节点指定一些替代的识别方法,例如 /users/byid/48573
  • 使用查询参数指定一些替代的识别方法,例如/users/48573?fetchby=id/users/48573?byid=true
  • 将username-by-id视为另一种资源,例如 /identifiers/username/48573

哪些(如果有的话)最接近正确的REST?你会如何处理这个问题?

api rest url url-rewriting

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

使用disqus从网站检索评论

我想写一个抓取脚本来从cnn文章中检索评论.例如,这篇文章:http://www.cnn.com/2012/01/19/politics/gop-debate/index.html?hpt=hp_t1

我意识到cnn使用disqus进行评论讨论.由于评论加载不是基于网页的(即上一页,下一页)并且是动态的(即需要点击"下一个加载25"),我不知道如何检索本文的所有5000多条评论.

有什么想法或建议吗?

非常感谢!

disqus web-scraping

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

Gradle Checkstyle插件默认与Google Checks不兼容

请注意:我创建了这个GitHub项目来帮助您准确地解决问题.


Java 8和Gradle 4.6在这里.如果您通过gradle init --type java-libraryGradle Checkstyle插件创建一个新的Java Gradle项目,并将该插件配置为使用Google的Checkstyle XML,它将立即失败:

plugins {
    id 'java-library'
}

apply plugin: 'checkstyle'

dependencies {
    testCompile(
        'junit:junit:4.12'
    )
}

repositories {
    jcenter()
    mavenCentral()
}

checkstyle {
    // Go to the Google Checks link above and paste its
    // contents into checkstyle.xml
    config = rootProject.resources.text.fromFile('buildConfig/checkstyle/checkstyle.xml')
}
Run Code Online (Sandbox Code Playgroud)

使用该配置,运行./gradle clean build产生:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkstyleMain'.
> Unable to …
Run Code Online (Sandbox Code Playgroud)

java checkstyle gradle

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

当ng2-nvd3图表不在视图范围内时,大小的浏览器错误会发生变化

虽然使用ng2-nvd3结合角度2路由功能,我注意到控制台充满了以下错误:

d3.min.js:1 Error: <g> attribute transform: Expected number, "translate(NaN,5)"
Run Code Online (Sandbox Code Playgroud)

我设法将问题指向一个用例:

  • 将路径出口更改为指向具有ng2-nvd3图表的路线
  • 将其更改回指向没有ng2-nvd3图表的路线
  • 更改窗口的大小(或开发人员控制台的大小)
  • 在控制台中查看错误

这个可以很容易地用这个plunker重现:

  • 打开开发者控制台
  • 单击"图表"链接
  • 单击"无图表"链接
  • 更改开发人员控制台(或浏览器窗口的大小 - 相同的效果) - 确保释放鼠标按钮而不仅仅是更改大小.
  • 控制台中出现错误

怎么能避免这个错误?

nvd3.js angular2-routing ng2-nvd3 angular

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