NextCloud Developer

wwiki
이동: 둘러보기, 검색

https://docs.nextcloud.com/server/latest/developer_manual

파고들기[편집 | 원본 편집]

그룹웨어 통합[편집 | 원본 편집]

달력 통합[편집 | 원본 편집]

달력과 이벤트에 접근[편집 | 원본 편집]
달력 객체[편집 | 원본 편집]

"Calendar manager service"를 통해서 back end에서 달력 컨텐츠에 쿼리할 수 있다.

Calendars[편집 | 원본 편집]
Calendar providers[편집 | 원본 편집]

넥스트 클라우드 앱들은 넥스트 클라우드의 CalDAV 백 엔드의 내부 달력외에도 달력을 등록할 수 있다. 달력은 오직 요구하면 로딩된다. 그래서 lazy provider mechanism이 사용된다.

CalendarProvider 클래스는 ICalendarProvider 인터페이스를 구현해야 한다.

Write support[편집 | 원본 편집]
Handling iMIP data[편집 | 원본 편집]
Resources[편집 | 원본 편집]
Rooms[편집 | 원본 편집]

Client API[편집 | 원본 편집]

Webdav[편집 | 원본 편집]

Basic APIs[편집 | 원본 편집]

WebDAV basics[편집 | 원본 편집]

base url: /remote.php/dav

모든 요청은 인증정보가 필요하다.

Testing requests with curl[편집 | 원본 편집]

WebDAV 요청은 curl로 간단하게 테스트할 수 있다.

예를 들어, 폴더에서 파일들을 찾는 요청을 할 수 있다.

$ curl -u username:password 'https://cloud.example.com/remote.php/dav/files/username/folder' -X PROPFIND --data '<?xml version="1.0" encoding="UTF-8"?>
 <d:propfind xmlns:d="DAV:">
   <d:prop xmlns:oc="http://owncloud.org/ns">
     <d:getlastmodified/>
     <d:getcontentlength/>
     <d:getcontenttype/>
     <oc:permissions/>
     <d:resourcetype/>
     <d:getetag/>
   </d:prop>
 </d:propfind>'
Listing folders[편집 | 원본 편집]

rfc4918: https://tools.ietf.org/html/rfc4918

폴더에 PROPFIND요청을 보내서 폴더의 컨텐츠를 리스트할 수 있다.

PROPFIND remote.php/dav/files/user/path/to/folder
Requesting properties[편집 | 원본 편집]

기본적으로 수정일시, 파일 크기, 폴더여부, eTag, mime type을 리턴한다.

PROPFIND요청을 보낼 때 추가속성을 요청할 수 있다.

<?xml version="1.0"?>
<d:propfind  xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
  <d:prop>
        <d:getlastmodified />
        <d:getetag />
        <d:getcontenttype />
        <d:resourcetype />
        <oc:fileid />
        <oc:permissions />
        <oc:size />
        <d:getcontentlength />
        <nc:has-preview />
        <oc:favorite />
        <oc:comments-unread />
        <oc:owner-display-name />
        <oc:share-types />
        <nc:contained-folder-count />
        <nc:contained-file-count />
  </d:prop>
</d:propfind>

지원되는 속성들

  • {DAV:}getlastmodified
  • {DAV:}getetag
  • {DAV:}getcontenttype
  • {DAV:}resourcetype
  • {DAV:}getcontentlength
  • {http://owncloud.org/ns}id The fileid namespaced by the instance id, globally unique
  • {http://owncloud.org/ns}fileid The unique id for the file within the instance
  • {http://owncloud.org/ns}favorite
  • {http://owncloud.org/ns}comments-href
  • {http://owncloud.org/ns}comments-count
  • {http://owncloud.org/ns}comments-unread
  • {http://owncloud.org/ns}owner-id The user id of the owner of a shared file
  • {http://owncloud.org/ns}owner-display-name The display name of the owner of a shared file
  • {http://owncloud.org/ns}share-types
  • {http://owncloud.org/ns}checksums
  • {http://nextcloud.org/ns}has-preview
  • {http://owncloud.org/ns}size Unlike getcontentlength, this property also works for folders reporting the size of everything in the folder.
  • {http://nextcloud.org/ns}rich-workspace this property is provided by the text app
  • {http://nextcloud.org/ns}contained-folder-count The number of folders directly contained in the folder (not recursively)
  • {http://nextcloud.org/ns}contained-file-count The number of files directly contained in the folder (not recursively)
Getting properties for just the folder[편집 | 원본 편집]

요청헤더에 Depth: 0 을 추가하면 폴더 컨텐츠 없이 폴더 속성을 요청할 수 있다.

Downloading files[편집 | 원본 편집]
GET remote.php/dav/files/user/path/to/file
Uploading files[편집 | 원본 편집]
PUT remote.php/dav/files/user/path/to/file
Creating folders ([rfc:4918 rfc4918])[편집 | 원본 편집]
MKCOL remote.php/dav/files/user/path/to/new/folder
Deleting files and folders ([rfc:4918 rfc4918])[편집 | 원본 편집]
DELETE remote.php/dav/files/user/path/to/file