Rest API的簡單應用

寫在前面

最近一直在搞經過Rest api的方式讀取sharepoint文檔庫中的內容。有些地方須要注意,在此作下記錄。api

步驟

啓動sharepoint服務器的服務服務器

這裏能夠使用腳本的方式進行啓動,腳本以下:app

得到管理帳戶,好比你的帳戶爲sp\administrator網站

$account = Get-SPManagedAccount "sp\administrator"


$subscriptionSettingsServices = Get-SPServiceInstance | where {$_.TypeName -like "Microsoft SharePoint Foundation Subscription Settings Service"} | ForEach-Object {
    $subscriptionSettingsService = $_;
    if($subscriptionSettingsService.Status -ne "Online") {
        Write-Host "start Subscription Settings Service ,Id:" + $_.Id
        Start-SPServiceInstance $subscriptionSettingsService | Out-Null
    }
     else{
         Write-Host "Subscription Settings Service has started,Id:" + $_.Id
    }
}


Write-Host "starting Config Subscription Settings Service..."
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName SettingsServiceDB_tmp
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc




$AppManageServices = Get-SPServiceInstance | where {$_.TypeName -like "App Management service"} | ForEach-Object {
    $AppManageService = $_;
    if($AppManageService.Status -ne "Online") {
        Write-Host "start run App Management service ,Id:" + $_.Id
        Start-SPServiceInstance $AppManageService | Out-Null
    }
     else{
         Write-Host "App Management service has started,Id:" + $_.Id
    }
}



Write-Host "App Management service..."
$appPoolSubSvc = New-SPServiceApplicationPool -Name AppManagementServiceAppPool -Account $account
$appSubSvc = New-SPAppManagementServiceApplication –ApplicationPool $appPoolSubSvc –Name AppManagementServiceApp –DatabaseName AppManagementServiceDB_tmp
$proxySubSvc = New-SPAppManagementServiceApplicationProxy –ServiceApplication $appSubSvc



Write-Host "config success!"

運行成功後檢查下列服務是否啓動:ui

檢查下列服務是否存在:spa

準備證書3d

建立並導出自簽名的證書調試

導出公鑰證書code

註冊APP並受權blog

註冊app的腳本

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()
$appDisplayName = "Lenovo_Documents"
$clientID = "11c825ca-5b9c-4a02-857d-d0bc9690c327"
$targetSiteUrl = "http://sp2013/"
$targetSite = Get-SPSite $targetSiteUrl
$realm = Get-SPAuthenticationRealm -ServiceContext $targetSite
$fullAppPrincipalIdentifier = $clientID + "@" + $realm
Write-Host "Register new app principal"
$registeredAppPrincipal = Register-SPAppPrincipal -NameIdentifier $fullAppPrincipalIdentifier -Site $targetSite.RootWeb -DisplayName $AppDisplayName
Set-SPAppPrincipalPermission -site $targetSite.RootWeb -AppPrincipal $registeredAppPrincipal -Scope SiteCollection -Right FullControl -EnableAppOnlyPolicy

註冊發佈者

#Register a trusted security-token issuer

$targetSiteUrl = "http://sp2013/"
$publicCertificatePath = "C:\Certs\Lenovo_Documents.cer"
$issuerID = "7c444f28-03be-445f-8Dfc-0af2869b23cd"
$targetSite = Get-SPSite $targetSiteUrl
$realm = Get-SPAuthenticationRealm -ServiceContext $targetSite
$realm

$registeredIssuerName = $issuerID + "@" + $realm
$publicCertificate = Get-PfxCertificate $publicCertificatePath
Write-Host "Create token issuer"
$secureTokenIssuer = New-SPTrustedSecurityTokenIssuer -Name $issuerID -RegisteredIssuerName $registeredIssuerName -Certificate $publicCertificate -IsTrustBroker

iisreset

開發app,消費sharepoint數據

建立網站

添加引用

加入TokenHelper.cs

配置Web.Config
注意下列標記值,應與以前步驟配置的值一致。注意,在下面的對應的guid,應與註冊時候使用的guid相同。

 

如預期,經過REST API 返回JSON數據

總結

若是在sharepoint的本地環境中調試經過,而後就是經過odata方式獲取,或者篩選本身須要的數據了。

相關文章
相關標籤/搜索