我从未用maven构建我的java应用程序.但是,当我试图这样做时,它给了我错误.我只是通过从该应用程序导出为JAR,从其他Java应用程序创建了JAR文件.现在我想在我的maven应用程序中添加这个JAR.我真的不怎么做.
这是我在pom.xml中添加的方式.但我真的不知道应该是什么神器ID.严重的是什么是神器ID?
<dependency>
<groupId>ProjectZen</groupId>
<artifactId>community</artifactId>
<scope>system</scope>
<version>1</version>
<systemPath>${basedir}\libs\ProjectZen.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我收到了以下错误
Missing artifact ProjectZen:community:jar:1
Run Code Online (Sandbox Code Playgroud)
谢谢Fahad Mullaji
我正在尝试使用以下原型编写API:
[HttpPost]
public ApplicationStatus appLogIn(string id, UserCredentials userCredentials = null)
Run Code Online (Sandbox Code Playgroud)
但是当我向这个API提出请求时,无论有没有userCredentials,我都会得到以下错误,响应代码为500
{
"Message": "An error has occurred.",
"ExceptionMessage": "Optional parameter 'userCredentials' is not supported by 'FormatterParameterBinding'.",
"ExceptionType": "System.InvalidOperationException",
"StackTrace": null
}
Run Code Online (Sandbox Code Playgroud)
如果我不将userCredentials作为可选项,一切正常.userCredential定义如下:
public class UserCredentials
{
public string password { get; set; }
public string username { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 您能否列出一些策略甚至已经应用的方法来预防/保护/最小化对Restful Web Services的DDOS攻击?
谢谢.
在使用Angular的单页应用程序中,似乎大多数事情都是在客户端处理的.客户端似乎只是对服务器进行了休息调用.
遵循这个概念,在我看来,我的服务器端根本没有任何应用程序,只有生成RESTful json数据供客户端读取的脚本.
也许像Hibernate这样的框架或连接到数据库的框架仍然是相关的,因为服务器上的restful脚本仍然需要连接到DB.但那些MVC框架呢?
由于在单页的应用程序服务器只需要以服务客户端REST风格的调用,框架,如Spring,Struts的(在Java中)或Laravel(在PHP)等,它们都是不相关的SPA?这意味着服务器端可能只需要一个好的RESTful库,我们可以使用它来提供json数据,这就是全部?否则,SPA中服务器上的视图和控制器会是什么?
javascript restful-architecture angularjs single-page-application
当数据具有父/子/孙子实体的树结构时,我们经常复制URL中的信息,指定父ID,即使这不是必需的.在这种情况下设计RESTful API的最佳方法是什么?可以缩短URL并省略父ID吗?
树如下:最顶层的实体是产品.每个产品都有0-N评论.每篇评论都附有0-M评论.从理论上讲,这棵树可以有任意深度.
天真的RESTful API看起来像这样(假设只有GET端点):
/products ... list of products
/products/123 ... specific product 123
/products/123/reviews ... list of reviews for product '123'
/products/123/reviews/abc ... specific review 'abc'
/products/123/reviews/abc/comments ... list comments for review 'abc'
Run Code Online (Sandbox Code Playgroud)
坚持下去,等一下......我写的最后两个标签对产品'123'没有任何说明.是的,评论'abc'属于该产品,但作为一个人,我不需要知道.如果评论ID"abc"在所有评论中都是唯一的,那么计算机也不是.
因此,例如当我们发送更新(PATCH)审核'abc'的请求时,我们不需要知道父对象的整个层次结构直到树根(产品),例如它属于产品'123'在此案件.当然,我们假设每个对象在该实体的所有对象中都有一个唯一的ID - 但这是一种自然行为,例如在RDB中,所以很多人(好吧,他们的API)都处于这种情况.
如果"子实体"的ID在该类型的所有实体中都是唯一的,那么最佳做法是设计这样的API吗?
/reviews/abc ... specific review 'abc'
/reviews/abc/comments ... list comments for review 'abc'
/comments/xyz ... specific comment 'xyz'
Run Code Online (Sandbox Code Playgroud)如果对(1)的回答是肯定的,那么像这样的端点是否也应该有效?为什么?为什么不?
/products/123/reviews/abc/comments/xyz ... specific comment 'xyz'
Run Code Online (Sandbox Code Playgroud)如果允许短URL(甚至是首选),那么这有点不一致吗?
/products/123/reviews ... list reviews for product '123'
/reviews/abc ... specific review …Run Code Online (Sandbox Code Playgroud)的HTTP/1.1标准规定,如果一个POST在创建一个资源的操作结果,那么该响应应该包括一个Location与新的资源的地址头部.
如果在源服务器上创建了资源,则响应应该是201(已创建)并包含描述请求状态的实体,并引用新资源和Location头(请参阅第14.30节).
在第14.30节,
对于201(已创建)响应,Location是请求创建的新资源的位置.
现在假设我的API允许POST通过将数组批量创建资源到集合资源URL.例如:
POST /books
[
{
"name": "The Colour of Magic",
"published": "1983"
},
{
"name": "The Light Fantastic",
"published": "1986"
}
]
Run Code Online (Sandbox Code Playgroud)
由于\book\{bookId}已经创建了两个资源,Location在这种情况下标题的值应该是多少?
Http在多个新资源创建后发布的问题?是类似的,但它询问响应实体,而不是标题(并且没有答复).
rest http http-status-codes restful-url restful-architecture
考虑两个资源之间的以下关系
显然,一个学院不是一流的资源.
现在我需要端点来执行以下操作.
POST /faculties/PUT /college/1/facultiesGET /college/1/faculties:相关院系列表.每个都会包含一个自我网址/faculties/1.DELETE /college/1/faculties/1:网址看起来更好,但如何公开这个网址?PUT /college/1/faculties 接受这所大学院系的完整列表.DELETE /sectors/1:看起来不错,但需要照顾缓存/faculties/1/sectors.在这种情况下,什么是更好的方法?我已经阅读了关于公开会员资源的内容,但是通过这种方法,如果一所大学有10个院系,则需要10个单独的http电话才能从会员资格中获取所有这些资源.
而且,这只是完整关系树的一小部分.为了进一步扩展,系统说
此外,在RESTful架构中,客户端永远不应该填充URL.
有什么建议吗?
我正在开发一个RESTful API,我在为API提供输入的过程中遇到了一些麻烦.
假设我有一个可以像这样获取的"Person"资源:api/person/{id}并返回如下对象:
public class Person
{
public int Id { get; set; }
public string Surname { get; set; }
public string GivenName { get; set; }
public DateTime DateOfBirth { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我想更新那个人,API应该期待一个完整的Person实例,还是可以使用单独的DTO?
比如说,DateOfBirth不能改变,接受它作为输入是否被认为是RESTful:
public class UpdatePersonDto
{
public string Surname { get; set; }
public string GivenName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这意味着我将不得不为此端点api/person/{id}恢复Person使用时GET,而作为输入接收UpdatePersonDto使用时PUT.这对我来说听起来不对,但我不确定我是不是只是偏执狂.
所以我想我的问题总结为:接受给定资源端点上的数据结构是否适合与端点返回的数据结构不同?
REST API始终被视为基础结构目的.我不是专家,但我发现他们应该实现的原则涉及水平扩展和性能.他们应该压制客户和服务之间的各种亲和力(没有会话等).从业务角度来看很少考虑REST API.
上周,团队中的某个人提议将遗留应用程序的一部分实现为REST API.此应用程序以前作为库(.NET)嵌入到请求它的每个应用程序中.REST API很快就遇到了性能问题(客户端和服务器之间的往返次数太多).作为一种解决方法,实现了缓存(在服务器端).在我看来,它违反了REST原则.如果没有缓存,我们应该为一个客户端提供许多服务器以获得可接受的性能,并行请求或负载均衡器(或类似的......).
在我们谈论API时,我认为这些API应该由业务需求驱动.根据您的经验,是否存在不适合REST的业务用例?
[编辑] API是关于模拟来自客户端的条目的工作流程...
我花了一些时间寻找一种方法将数据从Android应用程序发送到Matlab - 没有办法.我更喜欢通过Restful webservice使用JSON.
我可能有错误的概念,这是如何工作的.
Matlab应该运行/等待来自我的Android设备的POST请求以接收数据,将其从json转换为matlab形式,进行并发送回来 - 而不是再次等待新请求.
像"webread"这样的"RESTful web服务"似乎不会等待传入数据并为它们激活.
如何让Matlab用json监听传入的数据?或者如何让Matlab从基于Android/Java的程序接收数据?我是否需要其他框架,api甚至是带数据库的服务器才能完成这项工作?
任何人都可以给我一些提示吗?
rest ×6
api ×2
java ×2
restful-url ×2
android ×1
angularjs ×1
apiblueprint ×1
asp.net ×1
ddos ×1
http ×1
http-post ×1
jar ×1
javascript ×1
json ×1
matlab ×1
maven ×1
security ×1
tree ×1
web-services ×1