Interagieren Sie mit der öffentlichen REST-API auf einem ServiceNow Instanz

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 1 Minute Lesedauer
  • Die Mobile SDK Stellt Funktionen bereit, die aktivieren Android Anwendungen zum Aufrufen der öffentlichen REST-API auf einem ServiceNow Instanz.

    Mit NowAPIService API, mit der Sie mit einer beliebigen Basis interagieren können ServiceNowÖffentlich REST-APIs , Oder erstellen Sie anwenderdefinierte REST-APIs in der Instanz, und rufen Sie diese von Ihrem aus auf Android Anwendung.

    Bevor Sie einen Anruf an einen tätigen ServiceNow REST-API, Sie müssen aufrufen MakeNowAPIService() Methode zum Erstellen einer Instanz des Service. Die Serviceinstanz wird im Rückruf zurückgegeben, wenn sie erfolgreich ist, andernfalls wird ein Fehler ausgelöst.

    Im Folgenden wird gezeigt, wie ein NowAPIService-Objekt initialisiert wird:
    /**
     * Helper class used to handle different Now service instances. It has an application scope or is Singleton
     */
    @Singleton
    class SdkManager @Inject constructor() {
    
        private var nowApiService: NowAPIService? = null
    
        /**
         * Create the NowAPIService once in the lifetime of the application inside the Application class or another manager class
         * that will be injected into other classes via dagger/hilt.
         * NowAPIService should be created after initializing the NowSDK
         */
        suspend fun getNowApiService(): NowAPIService? {
            if (nowApiService != null) return nowApiService
    
            return NowDataSDK.makeAPIService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowApiService = it }
        }
    
    }
    Sobald das NowAPIService-Objekt initialisiert wurde, verwenden Sie den NowAPIService Daten () Methode zum Angeben des aufzurufenden REST-Endpunkts und aller zugehörigen Parameter:
     suspend fun makeNowApiCall() {
      val apiService = sdkManager.getNowApiService()
    
      val apiPath = "api/now/table/sn_customerservice_case"
      val endpoint = NowAPIService.Endpoint(HttpMethod.GET, apiPath, true)
      val fieldNames = "sys_id,number,short_description,number,priority,state," +
        "opened_at,account.name,account.number,contact.name,contact.email," +
        "contact_type,assignment_group.name,assigned_to.name"
    
      val queryParamsMap = mapOf("sysparm_fields" to fieldNames, "sysparm_limit" to "10")
    
      val queryParams = QueryParams.Builder().addAll(queryParamsMap).build()
    
      val response = runCatching {
        apiService?.data(endpoint = endpoint, queryParams = queryParams)?.execute()
      }
    
      if (response.isSuccess) {
        val resultString = response.getOrNull()?.body?.let { String(it) }
      } else {
        // Handle error
      }
    }