标签:
// Copyright (c) 2016, Jordi Corbilla | |
// All rights reserved. | |
// | |
// Redistribution and use in source and binary forms, with or without | |
// modification, are permitted provided that the following conditions are met: | |
// | |
// - Redistributions of source code must retain the above copyright notice, | |
// this list of conditions and the following disclaimer. | |
// - Redistributions in binary form must reproduce the above copyright notice, | |
// this list of conditions and the following disclaimer in the documentation | |
// and/or other materials provided with the distribution. | |
// - Neither the name of this library nor the names of its contributors may be | |
// used to endorse or promote products derived from this software without | |
// specific prior written permission. | |
// | |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
// POSSIBILITY OF SUCH DAMAGE. | |
function TKinveyRest.Add(jsonString: string) : boolean; | |
var | |
IdHTTP: TIdHTTP; | |
IdIOHandler: TIdSSLIOHandlerSocketOpenSSL; | |
response : string; | |
JsonToSend: TStringStream; | |
encodedHeader : string; | |
begin | |
JsonToSend := TStringStream.Create(jsonString); | |
try | |
IdIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); | |
IdIOHandler.ReadTimeout := IdTimeoutInfinite; | |
IdIOHandler.ConnectTimeout := IdTimeoutInfinite; | |
IdHTTP := TIdHTTP.Create(nil); | |
try | |
IdHTTP.IOHandler := IdIOHandler; | |
IdHTTP.Request.Connection := ‘Keep-Alive‘; | |
IdIOHandler.SSLOptions.Method := sslvSSLv23; | |
IdHTTP.Request.CustomHeaders.Clear; | |
encodedHeader := TIdEncoderMIME.EncodeString(FOptions.AppId + ‘:‘ + FOptions.MasterSecret); | |
IdHTTP.Request.CustomHeaders.Values[‘Authorization‘] := ‘Basic ‘ + encodedHeader; | |
IdHTTP.Request.CustomHeaders.Values[‘X-Kinvey-API-Version‘] := ‘3‘; | |
IdHTTP.Request.ContentType := ‘application/json‘; | |
response := IdHTTP.Post(‘https://baas.kinvey.com/appdata/‘+FOptions.AppId+‘/‘+FOptions.Collection+‘/‘, JsonToSend); | |
response := response.Replace(AnsiChar(#10), ‘‘); | |
result := (response.Contains(‘creator‘)); | |
finally | |
IdHTTP.Free; | |
end; | |
finally | |
IdIOHandler.Free; | |
JsonToSend.Free; | |
end; | |
end; |
// Copyright (c) 2016, Jordi Corbilla | |
// All rights reserved. | |
// | |
// Redistribution and use in source and binary forms, with or without | |
// modification, are permitted provided that the following conditions are met: | |
// | |
// - Redistributions of source code must retain the above copyright notice, | |
// this list of conditions and the following disclaimer. | |
// - Redistributions in binary form must reproduce the above copyright notice, | |
// this list of conditions and the following disclaimer in the documentation | |
// and/or other materials provided with the distribution. | |
// - Neither the name of this library nor the names of its contributors may be | |
// used to endorse or promote products derived from this software without | |
// specific prior written permission. | |
// | |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
// POSSIBILITY OF SUCH DAMAGE. | |
function TKinveyRest.GetCollection: string; | |
var | |
IdHTTP: TIdHTTP; | |
IdIOHandler: TIdSSLIOHandlerSocketOpenSSL; | |
response : string; | |
encodedHeader : string; | |
begin | |
try | |
IdIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); | |
IdIOHandler.ReadTimeout := IdTimeoutInfinite; | |
IdIOHandler.ConnectTimeout := IdTimeoutInfinite; | |
IdHTTP := TIdHTTP.Create(nil); | |
try | |
IdHTTP.IOHandler := IdIOHandler; | |
IdHTTP.Request.Connection := ‘Keep-Alive‘; | |
IdIOHandler.SSLOptions.Method := sslvSSLv23; | |
IdHTTP.Request.CustomHeaders.Clear; | |
encodedHeader := TIdEncoderMIME.EncodeString(FOptions.AppId + ‘:‘ + FOptions.MasterSecret); | |
IdHTTP.Request.CustomHeaders.Values[‘Authorization‘] := ‘Basic ‘ + encodedHeader; | |
IdHTTP.Request.CustomHeaders.Values[‘X-Kinvey-API-Version‘] := ‘3‘; | |
IdHTTP.Request.ContentType := ‘application/json‘; | |
response := IdHTTP.Get(‘https://baas.kinvey.com/appdata/‘+FOptions.AppId+‘/‘+FOptions.Collection+‘/‘); | |
result := response; | |
finally | |
IdHTTP.Free; | |
end; | |
finally | |
IdIOHandler.Free; | |
end; | |
end; |
#Example posting to Kinvey via curl | |
>curl -H ‘Content-Type: application/json‘ --user APPKEY:MASTERSECRET -X PUT -d ‘{"user":"user","password":"password","url","www.google.co.uk"}‘ https://baas.kinvey.com/appdata/APPKEY/Websites | |
#Example reading the content of the collection | |
>curl --user APPKEY:MASTERSECRET -X GET https://baas.kinvey.com/appdata/APPKEY/Websites/ -G --data-urlencode ‘order={"user"}‘ |
// Copyright (c) 2016, Jordi Corbilla | |
// All rights reserved. | |
// | |
// Redistribution and use in source and binary forms, with or without | |
// modification, are permitted provided that the following conditions are met: | |
// | |
// - Redistributions of source code must retain the above copyright notice, | |
// this list of conditions and the following disclaimer. | |
// - Redistributions in binary form must reproduce the above copyright notice, | |
// this list of conditions and the following disclaimer in the documentation | |
// and/or other materials provided with the distribution. | |
// - Neither the name of this library nor the names of its contributors may be | |
// used to endorse or promote products derived from this software without | |
// specific prior written permission. | |
// | |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
// POSSIBILITY OF SUCH DAMAGE. | |
function TForm2.GetCollection() : TList<TUrls>; | |
var | |
list: TList<TUrls>; | |
url: TUrls; | |
begin | |
try | |
FBackendList := CreateUrlsList(BackendStorage1.Provider.ProviderID, BackendStorage1.Storage); | |
list := TList<TUrls>.Create; | |
try | |
for url in FBackendList do | |
list.Add(url); | |
except | |
list.Free; | |
raise; | |
end; | |
finally | |
result := list; | |
end; | |
end; | |
function TForm2.CreateUrlsList(const AProviderID: string; const AStorage: TBackendStorageApi): TBackendObjectList<TUrls>; | |
var | |
LQuery: TArray<string>; | |
LContactList: TBackendObjectList<TUrls>; | |
begin | |
LContactList := TBackendObjectList<TUrls>.Create; | |
try | |
LQuery := TArray<string>.Create(Format(‘order=%s‘, [‘user‘])); | |
AStorage.QueryObjects<TUrls>(‘websites‘, LQuery, LContactList); | |
except | |
LContactList.Free; | |
raise; | |
end; | |
Result := LContactList; | |
end; |
// Copyright (c) 2016, Jordi Corbilla | |
// All rights reserved. | |
// | |
// Redistribution and use in source and binary forms, with or without | |
// modification, are permitted provided that the following conditions are met: | |
// | |
// - Redistributions of source code must retain the above copyright notice, | |
// this list of conditions and the following disclaimer. | |
// - Redistributions in binary form must reproduce the above copyright notice, | |
// this list of conditions and the following disclaimer in the documentation | |
// and/or other materials provided with the distribution. | |
// - Neither the name of this library nor the names of its contributors may be | |
// used to endorse or promote products derived from this software without | |
// specific prior written permission. | |
// | |
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
// POSSIBILITY OF SUCH DAMAGE. | |
procedure TForm2.btnAddClick(Sender: TObject); | |
var | |
url : TUrls; | |
entity: TBackendEntityValue; | |
begin | |
url := TURls.Create(edit1.Text, edit2.Text, edit3.Text); | |
BackendStorage1.Storage.CreateObject<TUrls>(‘websites‘, url, entity); | |
end; |
http://www.delphifeeds.com/go/s/134494
BaaS with Kinvey and Delphi 10.1 Berlin
标签:
原文地址:http://www.cnblogs.com/findumars/p/5618301.html