REST API 和 CURL
REST API and CURL
我是 REST 开发的新手,正在编写一个 REST 客户端以使用 Retrofit2.0
与 Bitbucket API 通信
我以为与服务器通信API意味着以下面的形式发送请求
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
我认为 API 文档应该提供有关端点和参数等的必要信息。
但是当我查看 Bitbucket 的 API 时,我得到的只是有关如何使用 cURL 执行某些操作的说明,例如 this instruction - 用于创建新存储库。
就我而言,cURL 是一个 Linux 库,有助于促进从 Linux 终端向 API 发出请求。
我的问题是:
- cURL 和 REST 如何相互连接?
- 如何在我的 Rest 客户端应用程序中使用和实施 cURL?
- 根据 Bitbucket 提供的文档,执行使服务器创建新存储库的请求的正确方法是什么?
cURL 不是 REST。一个是工具,另一个是软件架构的风格。您可以使用 cURL 从命令行执行 REST 调用,但您不需要在客户端应用程序中实现它,因为可能有可用的工具。 Retrofit(实际上只是 OkHttp)就是一个例子。
首先,看到curl -X POST
?这意味着您需要 POST 请求,而不是代码中的 @GET
请求。
其次,您提供的 link 没有将 contributors
列为 API 的端点。
继续,您需要一些 JSON 对象来代表此对象 POST。
{
"scm": "git",
"project": {
"key": "{ba516952-992a-4c2d-acbd-17d502922f96}"
}
}
您可以使用 Gson 创建一个 Java 对象来表示此数据。就像是。
class Repo {
String scm;
Project project;
}
class Project {
String key;
}
然后,我建议从注释 URL 中删除前导 /
,因为它需要附加到基础 url。
@POST("repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo,
@Body Repo data
);
我是 REST 开发的新手,正在编写一个 REST 客户端以使用 Retrofit2.0
与 Bitbucket API 通信我以为与服务器通信API意味着以下面的形式发送请求
@GET("/repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo
);
我认为 API 文档应该提供有关端点和参数等的必要信息。
但是当我查看 Bitbucket 的 API 时,我得到的只是有关如何使用 cURL 执行某些操作的说明,例如 this instruction - 用于创建新存储库。
就我而言,cURL 是一个 Linux 库,有助于促进从 Linux 终端向 API 发出请求。
我的问题是:
- cURL 和 REST 如何相互连接?
- 如何在我的 Rest 客户端应用程序中使用和实施 cURL?
- 根据 Bitbucket 提供的文档,执行使服务器创建新存储库的请求的正确方法是什么?
cURL 不是 REST。一个是工具,另一个是软件架构的风格。您可以使用 cURL 从命令行执行 REST 调用,但您不需要在客户端应用程序中实现它,因为可能有可用的工具。 Retrofit(实际上只是 OkHttp)就是一个例子。
首先,看到curl -X POST
?这意味着您需要 POST 请求,而不是代码中的 @GET
请求。
其次,您提供的 link 没有将 contributors
列为 API 的端点。
继续,您需要一些 JSON 对象来代表此对象 POST。
{
"scm": "git",
"project": {
"key": "{ba516952-992a-4c2d-acbd-17d502922f96}"
}
}
您可以使用 Gson 创建一个 Java 对象来表示此数据。就像是。
class Repo {
String scm;
Project project;
}
class Project {
String key;
}
然后,我建议从注释 URL 中删除前导 /
,因为它需要附加到基础 url。
@POST("repos/{owner}/{repo}/contributors")
Call<List<Contributor>> contributors(
@Path("owner") String owner,
@Path("repo") String repo,
@Body Repo data
);