Getting started with Alfresco Development Gethin James - Senior Software Engineer @ Alfresco
What I'm going to talk about Alfresco basic overview New for developers in 4.2 The Alfresco One Restful Api Using it Adding to it (Yes, YOU can)
What I'm not going to talk about Share widget library Share page creation live
Alfresco Overview
New in 4.2 - Share http://blogs.alfresco.com/wp/kevinr/2013/08/22/alfresco-community-4-2-d/
New in 4.2 – Admin console http://blogs.alfresco.com/wp/kevinr/2013/09/30/alfresco-repository-admin-console/
New in 4.2 – Database queries In-transaction metadata query “A subset of CMIS queries may be automatically executed against the database if they do not contain OR, CONTAINS(), SCORE() or IN_TREE(); nor refer to decimal, boolean or URI CMIS data types.” ALF-19126 Summit: Querying for Metadata, Andy Hind Eventually Consistent
New in 4.2 Hybrid workflow Easy clustering Java @AlfrescoPublicApi Rich media management and transformations api
Who likes choices? Webscripts Server-side JavaScript IMAP, FTP, SharePoint protocol, CIFS
Photo Slide Folder, file, content and metadata manipulation and search sites, people, comments, tags, favorites, workflow JSON Cloud first – now in 4.2 Image title
Public Api - Consistency Structure: Urls, http methods, response format – list, pagination, entry Common error handling & responses Querying: Paging, filtering, where, orderBy Cloud and Enterprise 4.2
CMIS Getting Started with CMIS, Jeff Potts What's Coming in CMIS 1.1, Greg Book: CMIS & Apache Chemistry in Action by Florian Müller, Jay Brown, and Jeff Potts Apache Chemistry project
Api Urls http://localhost:8080/alfresco/api/-default-/cmis/versions/1.1/browser https://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/{entityResource}
Public Api https://api.alfresco.com/-default-/public/alfresco/versions/1/sites https://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/sites Network Id Api Namespace Entity mycompany.com alfresco or workflow people tags networks
Public Api https://api.alfresco.com/-default-/public/alfresco/versions/1/sites /public/alfresco/versions/1/sites Scope Version UniqueId UniqueId public/alfresco/versions/1/sites /{siteId}/members/{memberid} Api Namespace Entity Relationship
Public Api – Using it /nodes/{entityId}/tags /nodes/{entityId}/ratings /nodes/{entityId}/comments /sites /sites/{entityId} /sites/{entityId}/containers /sites/{entityId}/members /people/{entityId}/favorites /people/{entityId}/networks /people/{entityId}/sites /people/{entityId}/sites/<siteId> /people/{entityId}/preferences /people/{entityId}/activities /people/{entityId}/site-membership-requests /tags /networks/{entityId}
Documentation http://docs.alfresco.com/4.2/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fpra%2F1%2Ftopics%2Fpra-welcome.html
Public Api – Demo summary Consistent api across cloud & on-premise Json based RESTful, versioned Easy to use
Public Api – Adding to it Maven SDK https://github.com/AlfrescoLabs/quickrest
Public Api Framework Built on Webscripts Consistent No XML required No FreeMarker, uses POJOs & Jackson Uses annotations (nouns) and interfaces (verbs) Write the Java, we'll handle the REST ™
Public Api – Source code
Summary Choices, choices, choices. Scratched the service, ie. Data models Use CMIS Use the Maven SDK More Summit talks