对于我正在处理的网站,我们正在改进一种资源的网址 - 特别是从数字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/identifiers/username/48573哪些(如果有的话)最接近正确的REST?你会如何处理这个问题?
我想写一个抓取脚本来从cnn文章中检索评论.例如,这篇文章:http://www.cnn.com/2012/01/19/politics/gop-debate/index.html?hpt=hp_t1
我意识到cnn使用disqus进行评论讨论.由于评论加载不是基于网页的(即上一页,下一页)并且是动态的(即需要点击"下一个加载25"),我不知道如何检索本文的所有5000多条评论.
有什么想法或建议吗?
非常感谢!
请注意:我创建了这个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) 虽然使用ng2-nvd3结合角度2路由功能,我注意到控制台充满了以下错误:
d3.min.js:1 Error: <g> attribute transform: Expected number, "translate(NaN,5)"
Run Code Online (Sandbox Code Playgroud)
我设法将问题指向一个用例:
这个可以很容易地用这个plunker重现:
怎么能避免这个错误?