
# 使用REST接口操作Namespace
#### 功能简介
使用REST服务，传入对应host与port组成的url以及指定的Namespace，通过HTTP协议，对Namespace进行创建、查询、删除，获取指定Namespace中表的操作。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/caution_3.0-zh-cn.png)
HBase表以"*命名空间* :*表名*"格式进行存储，若在创建表时不指定命名空间，则默认存储在"default"中。其中，"hbase"命名空间为系统表命名空间，请不要对该系统表命名空间进行业务建表或数据读写等操作。
#### 代码样例
- 方法调用
  ```
  // Namespace operations.
   createNamespace(url, "testNs");
   getAllNamespace(url);
   deleteNamespace(url, "testNs");
   getAllNamespaceTables(url, "default");
  ```
  
- 创建namespace 以下代码片段在"hbase-rest-example\\src\\main\\java\\com\\huawei\\hadoop\\hbase\\examples"包的"HBaseRestTest"类的createNamespace方法中。
  ```
  private void createNamespace(String url, String namespace) {
       String endpoint = "/namespaces/" + namespace;
       Optional<ResultModel> result = sendAction(url + endpoint, MethodType.POST, null);
       if (result.orElse(new ResultModel()).getStatusCode() == HttpStatus.SC_CREATED) {
           LOG.info("Create namespace '{}' success.", namespace);
       } else {
           LOG.error("Create namespace '{}' failed.", namespace);
       }
   }
  ```
  
- 查询所有namespace 以下代码片段在"hbase-rest-example\\src\\main\\java\\com\\huawei\\hadoop\\hbase\\examples"包的"HBaseRestTest"类的getAllNamespace方法中。
  ```
  private void getAllNamespace(String url) {
       String endpoint = "/namespaces";
       Optional<ResultModel> result = sendAction(url + endpoint, MethodType.GET, null);
       handleNormalResult(result);
   }
  ```
  
- 删除指定namespace 以下代码片段在"hbase-rest-example\\src\\main\\java\\com\\huawei\\hadoop\\hbase\\examples"包的"HBaseRestTest"类的deleteNamespace方法中。
  ```
  private void deleteNamespace(String url, String namespace) {
       String endpoint = "/namespaces/" + namespace;
       Optional<ResultModel> result = sendAction(url + endpoint, MethodType.DELETE, null);
       if (result.orElse(new ResultModel()).getStatusCode() == HttpStatus.SC_OK) {
           LOG.info("Delete namespace '{}' success.", namespace);
       } else {
           LOG.error("Delete namespace '{}' failed.", namespace);
       }
   }
  ```
  
- 根据指定namespace获取其中的表 以下代码片段在"hbase-rest-example\\src\\main\\java\\com\\huawei\\hadoop\\hbase\\examples"包的"HBaseRestTest"类的getAllNamespaceTables方法中。
  ```
  private void getAllNamespaceTables(String url, String namespace) {
       String endpoint = "/namespaces/" + namespace + "/tables";
       Optional<ResultModel> result = sendAction(url + endpoint, MethodType.GET, null);
       handleNormalResult(result);
   }
  ```
  
 
