7

我正在编写一个用于访问私有 API 的小型便利包,并且正在使用httr函数来执行请求。我还使用 Roxygen 来处理文档等。我正在导入httr这样的函数:

#' Get a page of data from the specified endpoint.
#' @keywords internal
#' @importFrom httr GET
#'
get_data <- function(url, headers, page_number) {
  # Add querystring for page
  url_with_page <- paste0(url, "?page=", page_number)
  message("Downloading: ", url_with_page)
  # Get API response
  response <- GET(url_with_page, headers)
  return(response)
}

但是,当您尝试在没有预加载包的情况下运行包时,我会收到命名空间错误:

Error in get_data(url, headers, 1) : 
  could not find function "GET"

我通常会尊重Hadley在这类事情上的专业知识,但这是否是使用该Depends领域以及/而不是使用该领域的好案例Imports

编辑:我的 NAMESPACE 由 Roxygen 生成。

# Generated by roxygen2 (4.1.1): do not edit by hand

export(get_export)
export(get_exports)
export(get_metadata)
importFrom(httr,GET)
importFrom(httr,add_headers)
importFrom(httr,content)
importFrom(jsonlite,fromJSON)
importFrom(jsonlite,rbind.pages)

编辑:我的说明文件。

Package: APIpack
Type: Package
Title: APIpack
Version: 0.1
Date: 2016-01-04
Authors: "Matt Policastro"
Description: This package provides a set of convenience functions.
License: Proprietary
LazyData: TRUE
Imports: httr,
    jsonlite
Suggests: testthat
4

0 回答 0